-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Drop IE Support #112
Comments
Compiling to ES5
|
ES5 Adapter
2018-05-15: with the release of Firefox 60, ES6 module loading may provide the means to stop using the adapter altogether. 2018-11-17: with |
Limited CSS Layout Capabilities
RecommendationWhen applying fluid CSS grid layouts to new or existing components, identify what the IE fallback will look like. |
Legacy CSS Grid instead of Flexbox
|
Broken implementation of valid semantic HTML5 elements
|
Platform Polyfills
|
Limited Support for CSS Custom PropertiesThe ShadyCSS polyfill that's included with
|
ShadyDOM Rewrites - CSS Styling ConflictsShadyDOM doesn't prevent Light DOM CSS from accidentally styling ShadyDOM markup. Note: this isn't IE-specific, but it will eventually become an exclusive problem with IE (once modern browsers have native support for ShadowDOM).
For example: <style scope="hx-thing">
/* ShadyCSS Selectors */
#wrapper.hx-thing { ... }
#body.hx-thing { ... }
</style>
<style>
/* Light DOM CSS selectors */
#wrapper { ... }
#body { ... }
</style>
<div id="wrapper">
<hx-thing>
<div id="wrapper" class="style-scope hx-thing">
<div id="body">...</div>
</div>
</hx-thing>
</div> In this scenario, the Workaround - prefixed ShadyDOM selectorsTo work around this issue, we have to make the selectors in the Shadow DOM more specific than Light DOM.
The most stable way to work around this is to apply the BEM naming convention to IDs in the ShadowDOM. This prevents collisions in both Light DOM as well as ShadyDOM selectors across custom elements. <style scope="hx-thing">
/* ShadyCSS Selectors */
#hxThing.hx-thing { ... }
#hxThing__body.hx-thing { ... }
</style>
<style>
/* LightDOM CSS Selectors */
#wrapper { ... }
#body { ... }
</style>
<div id="wrapper">
<hx-thing>
<div id="hxThing" class="style-scope hx-thing">
<div id="hxThing__body">...</div>
</div>
</hx-thing>
</div> Now, |
ShadyDOM Rewrites - Differing CSS Selectors in Light DOMShadyDOM modifies the generated DOM to the point of requiring two different CSS selectors in order to target the same element. native ShadowDOM supported <hx-thing icon="key">
<p>Thing content!</p>
</hx-thing> The polyfilled via ShadyDOM <hx-thing icon="key">
<div id="wrapper" class="style-scope hx-thing">
<hx-icon type="key" class="style-scope hx-thing"></hx-icon>
<span class="style-scope hx-thing">
<p>Thing content!</p>
</span>
</div>
</hx-thing> The This affects:
FutureEventually, this won't be a problem for evergreen browsers. As they gain native ShadowDOM and Custom Element support, the ShadyDOM rewrites will no longer be applied. However, as long as we support IE, this will always be an issue, because IE will always require the polyfill. |
|
|
|
Poor / Degraded AccessibilityFile Input (
|
likely to be a long-lived issue
The text was updated successfully, but these errors were encountered: