These things cannot be feature detected. They must rely on either:
registerProtocolHandler()support (existed in webkit but doesnt do anything, still live in iOS/Android likely.)
timeupdatevideo/audio event fires inconsistently across webkit and moz
readyStateis inconsistent across webkit(4) and moz(3)
canPlayType()results on mobile are unreliable
preloadattribute support, can't be tested without bandwidth-consuming tests (Chrome has implemented the preload-IDL, but not the feature)
loopattribute support, can't be tested without bandwidth-consuming tests (support for this attribute is practically non-existent)
scripttag onload/onerror/onreadystatechange actual behaviour (atomicity, order, etc etc)
linktag / stylesheet onload actual behaviour (exists in webkit / ff but never fires)
text-overflow:ellipsisbehavior on text
keydown/keypressevents, and the
onhashchangeis case insensitive in IE8 (maybe 9 too?), all others are case sensitive (HTML5 requires case sensitivity). Can't be detected without actually triggering a hashchange event.
onhashchange, but doesn't support it. Workaround is to test for
document.documentMode > 8.
window.onloador in IE, the
<select>display in IE6
border-radius, etc (happens in Aurora/Midori/etc) issue 169
pointer-eventsfalse positive in Opera
position:fixedsupport in iOS and Android
<input type=text>element can cause that element's autocomplete box to not render at the same location as the actual input box.
<!-- -->comment nodes in the DOM (in IE)... like in some cases, a comment node will be moved to be a child of the previous element even though it's not a child proper. Can cause things like
:emptyto fail differently.
Add to the list if you know more Undetectables. Likewise, link to possible solutions if you think an item listed here can be feature-detected.
Contributors: paulirish, jaubourg, rwaldron, zachleat, snover, devongovett, rgrove, savetheclocktower, getify, garann, jdalton, michaelbrundage, necolas, mislav, davidcalhoun
Last edited by Miëtek Bak,