In HTML, attributes should be ASCII case-insensitive. This test mostly checks Element.hasAttribute() with different source for setting the attribute.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Testing data-æøå
PASS document.getElementById("target").hasAttribute("data-æøå") is true
PASS document.getElementById("target").getAttribute("data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-æøå") is true
PASS document.getElementById("target").getAttribute("DATA-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-æøå") is true
PASS document.getElementById("target").getAttribute("Data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is false
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is null
PASS document.getElementById("target").hasAttribute("data-Æøå") is false
PASS document.getElementById("target").getAttribute("data-Æøå") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is true
PASS document.getElementById("target").getAttribute("data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-æøå") is true
PASS document.getElementById("target").getAttribute("DATA-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-æøå") is true
PASS document.getElementById("target").getAttribute("Data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-æøå") is true
PASS document.getElementById("target").getAttribute("data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-æøå") is true
PASS document.getElementById("target").getAttribute("DATA-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-æøå") is true
PASS document.getElementById("target").getAttribute("Data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is false
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is null
PASS document.getElementById("target").hasAttribute("data-Æøå") is false
PASS document.getElementById("target").getAttribute("data-Æøå") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is true
PASS document.getElementById("target").getAttribute("data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-æøå") is true
PASS document.getElementById("target").getAttribute("DATA-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-æøå") is true
PASS document.getElementById("target").getAttribute("Data-æøå") is "WebKit!"

Testing DATA-æøå
PASS document.getElementById("target").hasAttribute("data-æøå") is true
PASS document.getElementById("target").getAttribute("data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-æøå") is true
PASS document.getElementById("target").getAttribute("DATA-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-æøå") is true
PASS document.getElementById("target").getAttribute("Data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is false
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is null
PASS document.getElementById("target").hasAttribute("data-Æøå") is false
PASS document.getElementById("target").getAttribute("data-Æøå") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is true
PASS document.getElementById("target").getAttribute("data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-æøå") is true
PASS document.getElementById("target").getAttribute("DATA-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-æøå") is true
PASS document.getElementById("target").getAttribute("Data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-æøå") is true
PASS document.getElementById("target").getAttribute("data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-æøå") is true
PASS document.getElementById("target").getAttribute("DATA-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-æøå") is true
PASS document.getElementById("target").getAttribute("Data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is false
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is null
PASS document.getElementById("target").hasAttribute("data-Æøå") is false
PASS document.getElementById("target").getAttribute("data-Æøå") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is true
PASS document.getElementById("target").getAttribute("data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-æøå") is true
PASS document.getElementById("target").getAttribute("DATA-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-æøå") is true
PASS document.getElementById("target").getAttribute("Data-æøå") is "WebKit!"

Testing Data-æøå
PASS document.getElementById("target").hasAttribute("data-æøå") is true
PASS document.getElementById("target").getAttribute("data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-æøå") is true
PASS document.getElementById("target").getAttribute("DATA-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-æøå") is true
PASS document.getElementById("target").getAttribute("Data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is false
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is null
PASS document.getElementById("target").hasAttribute("data-Æøå") is false
PASS document.getElementById("target").getAttribute("data-Æøå") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is true
PASS document.getElementById("target").getAttribute("data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-æøå") is true
PASS document.getElementById("target").getAttribute("DATA-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-æøå") is true
PASS document.getElementById("target").getAttribute("Data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-æøå") is true
PASS document.getElementById("target").getAttribute("data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-æøå") is true
PASS document.getElementById("target").getAttribute("DATA-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-æøå") is true
PASS document.getElementById("target").getAttribute("Data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is false
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is null
PASS document.getElementById("target").hasAttribute("data-Æøå") is false
PASS document.getElementById("target").getAttribute("data-Æøå") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is true
PASS document.getElementById("target").getAttribute("data-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-æøå") is true
PASS document.getElementById("target").getAttribute("DATA-æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-æøå") is true
PASS document.getElementById("target").getAttribute("Data-æøå") is "WebKit!"

Testing data-Æøå
PASS document.getElementById("target").hasAttribute("data-Æøå") is true
PASS document.getElementById("target").getAttribute("data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-Æøå") is true
PASS document.getElementById("target").getAttribute("DATA-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-Æøå") is true
PASS document.getElementById("target").getAttribute("Data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is false
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is false
PASS document.getElementById("target").getAttribute("data-æøå") is null
PASS document.getElementById("target").hasAttribute("data-Æøå") is true
PASS document.getElementById("target").getAttribute("data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-Æøå") is true
PASS document.getElementById("target").getAttribute("DATA-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-Æøå") is true
PASS document.getElementById("target").getAttribute("Data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-Æøå") is true
PASS document.getElementById("target").getAttribute("data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-Æøå") is true
PASS document.getElementById("target").getAttribute("DATA-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-Æøå") is true
PASS document.getElementById("target").getAttribute("Data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is false
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is false
PASS document.getElementById("target").getAttribute("data-æøå") is null
PASS document.getElementById("target").hasAttribute("data-Æøå") is true
PASS document.getElementById("target").getAttribute("data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-Æøå") is true
PASS document.getElementById("target").getAttribute("DATA-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-Æøå") is true
PASS document.getElementById("target").getAttribute("Data-Æøå") is "WebKit!"

Testing DATA-Æøå
PASS document.getElementById("target").hasAttribute("data-Æøå") is true
PASS document.getElementById("target").getAttribute("data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-Æøå") is true
PASS document.getElementById("target").getAttribute("DATA-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-Æøå") is true
PASS document.getElementById("target").getAttribute("Data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is false
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is false
PASS document.getElementById("target").getAttribute("data-æøå") is null
PASS document.getElementById("target").hasAttribute("data-Æøå") is true
PASS document.getElementById("target").getAttribute("data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-Æøå") is true
PASS document.getElementById("target").getAttribute("DATA-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-Æøå") is true
PASS document.getElementById("target").getAttribute("Data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-Æøå") is true
PASS document.getElementById("target").getAttribute("data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-Æøå") is true
PASS document.getElementById("target").getAttribute("DATA-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-Æøå") is true
PASS document.getElementById("target").getAttribute("Data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is false
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is false
PASS document.getElementById("target").getAttribute("data-æøå") is null
PASS document.getElementById("target").hasAttribute("data-Æøå") is true
PASS document.getElementById("target").getAttribute("data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-Æøå") is true
PASS document.getElementById("target").getAttribute("DATA-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-Æøå") is true
PASS document.getElementById("target").getAttribute("Data-Æøå") is "WebKit!"

Testing Data-Æøå
PASS document.getElementById("target").hasAttribute("data-Æøå") is true
PASS document.getElementById("target").getAttribute("data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-Æøå") is true
PASS document.getElementById("target").getAttribute("DATA-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-Æøå") is true
PASS document.getElementById("target").getAttribute("Data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is false
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is false
PASS document.getElementById("target").getAttribute("data-æøå") is null
PASS document.getElementById("target").hasAttribute("data-Æøå") is true
PASS document.getElementById("target").getAttribute("data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-Æøå") is true
PASS document.getElementById("target").getAttribute("DATA-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-Æøå") is true
PASS document.getElementById("target").getAttribute("Data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-Æøå") is true
PASS document.getElementById("target").getAttribute("data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-Æøå") is true
PASS document.getElementById("target").getAttribute("DATA-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-Æøå") is true
PASS document.getElementById("target").getAttribute("Data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is false
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is false
PASS document.getElementById("target").getAttribute("data-æøå") is null
PASS document.getElementById("target").hasAttribute("data-Æøå") is true
PASS document.getElementById("target").getAttribute("data-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-Æøå") is true
PASS document.getElementById("target").getAttribute("DATA-Æøå") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-Æøå") is true
PASS document.getElementById("target").getAttribute("Data-Æøå") is "WebKit!"

Testing data-ÆØÅ
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("DATA-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("Data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-Æøå") is false
PASS document.getElementById("target").getAttribute("data-Æøå") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is false
PASS document.getElementById("target").getAttribute("data-æøå") is null
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("DATA-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("Data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("DATA-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("Data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-Æøå") is false
PASS document.getElementById("target").getAttribute("data-Æøå") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is false
PASS document.getElementById("target").getAttribute("data-æøå") is null
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("DATA-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("Data-ÆØÅ") is "WebKit!"

Testing DATA-ÆØÅ
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("DATA-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("Data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-Æøå") is false
PASS document.getElementById("target").getAttribute("data-Æøå") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is false
PASS document.getElementById("target").getAttribute("data-æøå") is null
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("DATA-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("Data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("DATA-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("Data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-Æøå") is false
PASS document.getElementById("target").getAttribute("data-Æøå") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is false
PASS document.getElementById("target").getAttribute("data-æøå") is null
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("DATA-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("Data-ÆØÅ") is "WebKit!"

Testing Data-ÆØÅ
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("DATA-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("Data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-Æøå") is false
PASS document.getElementById("target").getAttribute("data-Æøå") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is false
PASS document.getElementById("target").getAttribute("data-æøå") is null
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("DATA-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("Data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("DATA-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("Data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("data-Æøå") is false
PASS document.getElementById("target").getAttribute("data-Æøå") is null
PASS document.getElementById("target").hasAttribute("data-æøå") is false
PASS document.getElementById("target").getAttribute("data-æøå") is null
PASS document.getElementById("target").hasAttribute("data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("data-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("DATA-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("DATA-ÆØÅ") is "WebKit!"
PASS document.getElementById("target").hasAttribute("Data-ÆØÅ") is true
PASS document.getElementById("target").getAttribute("Data-ÆØÅ") is "WebKit!"

PASS successfullyParsed is true

TEST COMPLETE

