<!DOCTYPE html>
<html xmlns='http://www.w3.org/1999/xhtml' xmlns:a='http://www.w3.org/2005/07/aaa'>
 <head>
  <title>dash in XHTML</title>
  <style> html { font-size:small; } * { margin-top:0; margin-bottom:0 } </style>
 </head>
 <body>
  <div aria-foo='bar'></div>
  <script>
   var test = document.getElementsByTagName('div')[0];
  </script>
  <dl>

   <dt>CSS (green background if selector was applied):</dt>
   <dd>
    <style scoped=''>
     p { background:red }
     #first[aria-foo] { background:lime }
     </style>
    <p id='first' aria-foo='bar'>[aria-foo]</p>
    </dd>

   <dt>.getAttribute('aria-foo')</dt>
   <dd>
    <pre>Script didn't run</pre>
    <script>
     var elm = document.getElementsByTagName('pre')[0];
     try {
       elm.firstChild.data = 'Returned: ' + test.getAttribute('aria-foo');
     } catch(e) {
       elm.firstChild.data = e.name + ': ' + e.message;
     }
    </script>
   </dd>

   <dt>.getAttributeNS(null, 'aria-foo')</dt>
   <dd>
    <pre>Script didn't run</pre>
    <script>
     elm = document.getElementsByTagName('pre')[1];
     try {
       elm.firstChild.data = 'Returned: ' + test.getAttributeNS(null, 'aria-foo');
     } catch(e) {
       elm.firstChild.data = e.name + ': ' + e.message;
     }
    </script>
   </dd>

   <dt>aria-foo='bar'</dt>
   <dd>
    <pre>Script didn't run</pre>
    <script>
     elm = document.getElementsByTagName('pre')[2];
     elm.firstChild.data = '';
     var attrs = test.attributes;
     try {
       for (var i = 0; i &lt; attrs.length; ++i) {
         var attr = attrs[i];
         if (attr &amp;&amp; attr.specified)
           elm.firstChild.data += attr + '\r\nnodeName: ' + attr.nodeName + '\r\nlocalName: ' + attr.localName + '\r\nnamespaceURI: ' + attr.namespaceURI + '\r\n';
       }
     } catch(e) {
       try {
         for (var i in attrs) {
           var attr = attrs.getNamedItem(i);
           if (attr &amp;&amp; attr.specified)
             elm.firstChild.data += attr + '\nnodeName: ' + attr.nodeName + '\nlocalName: ' + attr.localName + '\nnamespaceURI: ' + attr.namespaceURI + '\n';
         }
       } catch(e) {
         elm.firstChild.data = e.name + ': ' + e.message;
       }
     }
    </script>
   </dd>

   <dt>setAttribute('aria-foo', 'bar')</dt>
   <dd>
    <pre>Script didn't run</pre>
    <script>
     elm = document.getElementsByTagName('pre')[3];
     elm.firstChild.data = '';
     elm.setAttribute('aria-foo', 'bar');
     var attrs = elm.attributes;
     try {
       for (var i = 0; i &lt; attrs.length; ++i) {
         var attr = attrs[i];
         if (attr &amp;&amp; attr.specified)
           elm.firstChild.data += attr + '\r\nnodeName: ' + attr.nodeName + '\r\nlocalName: ' + attr.localName + '\r\nnamespaceURI: ' + attr.namespaceURI + '\r\n';
       }
     } catch(e) {
       try {
         for (var i in attrs) {
           var attr = attrs.getNamedItem(i);
           if (attr &amp;&amp; attr.specified)
             elm.firstChild.data += attr + '\nnodeName: ' + attr.nodeName + '\nlocalName: ' + attr.localName + '\nnamespaceURI: ' + attr.namespaceURI + '\n';
         }
       } catch(e) {
         elm.firstChild.data = e.name + ': ' + e.message;
       }
     }
    </script>
   </dd>

   <dt>setAttributeNS(null, 'aria-foo', 'bar')</dt>
   <dd>
    <pre>Script didn't run</pre>
    <script>
     elm = document.getElementsByTagName('pre')[4];
     elm.firstChild.data = '';
     elm.setAttributeNS(null, 'aria-foo', 'bar');
     var attrs = elm.attributes;
     try {
       for (var i = 0; i &lt; attrs.length; ++i) {
         var attr = attrs[i];
         if (attr &amp;&amp; attr.specified)
           elm.firstChild.data += attr + '\r\nnodeName: ' + attr.nodeName + '\r\nlocalName: ' + attr.localName + '\r\nnamespaceURI: ' + attr.namespaceURI + '\r\n';
       }
     } catch(e) {
       try {
         for (var i in attrs) {
           var attr = attrs.getNamedItem(i);
           if (attr &amp;&amp; attr.specified)
             elm.firstChild.data += attr + '\nnodeName: ' + attr.nodeName + '\nlocalName: ' + attr.localName + '\nnamespaceURI: ' + attr.namespaceURI + '\n';
         }
       } catch(e) {
         elm.firstChild.data = e.name + ': ' + e.message;
       }
     }
    </script>
   </dd>

  </dl>
 </body>
</html>