diff --git a/common/biblio.js b/common/biblio.js index 72e1618146..d5403d4b15 100644 --- a/common/biblio.js +++ b/common/biblio.js @@ -1,38 +1,38 @@ var biblio = { - "ACCNAME-AAM": { - "aliasOf": "ACCNAME-AAM-1.1", - }, - "ARIA-PRACTICES": { - "aliasOf": "WAI-ARIA-PRACTICES-1.1", - }, - "CORE-AAM": { - "aliasOf": "CORE-AAM-1.1", - }, - "DPUB-ARIA": { - "aliasOf": "DPUB-ARIA-1.0", - }, - "GRAPHICS-ARIA": { - "aliasOf": "GRAPHICS-ARIA-1.0", - }, - "GRAPHICS-AAM": { - "aliasOf": "GRAPHICS-AAM-1.0", - }, - "EPUB-Content": { - "href": "http://www.idpf.org/epub/31/spec/epub-contentdocs.html", - "title": "EPUB Content Documents 3.1", - "publisher": "IDPF" - }, - "HTML-AAM": { - "aliasOf": "HTML-AAM-1.0", - }, - "SVG-AAM": { - "aliasOf": "SVG-AAM-1.0", - }, - "SVG1": { - "aliasOf": "SVG", - }, - "WAI-ARIA": { - "aliasOf": "WAI-ARIA-1.1", - } + 'ACCNAME-AAM': { + 'aliasOf': 'ACCNAME-AAM-1.1' + }, + 'ARIA-PRACTICES': { + 'aliasOf': 'WAI-ARIA-PRACTICES-1.1' + }, + 'CORE-AAM': { + 'aliasOf': 'CORE-AAM-1.1' + }, + 'DPUB-ARIA': { + 'aliasOf': 'DPUB-ARIA-1.0' + }, + 'GRAPHICS-ARIA': { + 'aliasOf': 'GRAPHICS-ARIA-1.0' + }, + 'GRAPHICS-AAM': { + 'aliasOf': 'GRAPHICS-AAM-1.0' + }, + 'EPUB-Content': { + 'href': 'http://www.idpf.org/epub/31/spec/epub-contentdocs.html', + 'title': 'EPUB Content Documents 3.1', + 'publisher': 'IDPF' + }, + 'HTML-AAM': { + 'aliasOf': 'HTML-AAM-1.0' + }, + 'SVG-AAM': { + 'aliasOf': 'SVG-AAM-1.0' + }, + 'SVG1': { + 'aliasOf': 'SVG' + }, + 'WAI-ARIA': { + 'aliasOf': 'WAI-ARIA-1.1' + } }; diff --git a/common/script/aria.js b/common/script/aria.js index 9de9b7d622..9cc9ed6e14 100644 --- a/common/script/aria.js +++ b/common/script/aria.js @@ -12,570 +12,578 @@ var roleInfo = {}; -require(["core/pubsubhub"], function( respecEvents ) { - respecEvents.sub("end-all", function() { - var m = document.URL; - if (m.match(/\#saveRoles/)) { - var $modal - , $overlay - , buttons = {} +require([ 'core/pubsubhub' ], function (respecEvents) { + respecEvents.sub('end-all', function () { + var m = document.URL; + if (m.match(/\#saveRoles/)) { + var $modal, + $overlay, + buttons = {} ; - var conf, doc, msg; - var ui = { - closeModal: function () { - if ($overlay) { - $overlay.fadeOut(200, function () { $overlay.remove(); $overlay = null; }); - } - if (!$modal) { - return; - } - $modal.remove(); - $modal = null; - } - , freshModal: function (title, content) { - if ($modal) { - $modal.remove(); - } - if ($overlay) { - $overlay.remove(); - } - var width = 500; - $overlay = $("
").hide(); - $modal = $("

").hide(); - $modal.find("h3").text(title); - $modal.find(".inside").append(content); - $("body") - .append($overlay) - .append($modal); - $overlay - .click(this.closeModal) - .css({ - display: "block" - , opacity: 0 - , position: "fixed" - , zIndex: 10000 - , top: "0px" - , left: "0px" - , height: "100%" - , width: "100%" - , background: "#000" - }) - .fadeTo(200, 0.5) - ; - $modal - .css({ - display: "block" - , position: "fixed" - , opacity: 0 - , zIndex: 11000 - , left: "50%" - , marginLeft: -(width/2) + "px" - , top: "100px" - , background: "#fff" - , border: "5px solid #666" - , borderRadius: "5px" - , width: width + "px" - , padding: "0 20px 20px 20px" - , maxHeight: ($(window).height() - 150) + "px" - , overflowY: "auto" - }) - .fadeTo(200, 1) - ; - } - }; - var supportsDownload = $("A")[0].download === "x" + var conf, doc, msg; + var ui = { + closeModal: function () { + if ($overlay) { + $overlay.fadeOut(200, function () { $overlay.remove(); $overlay = null; }); + } + if (!$modal) { + return; + } + $modal.remove(); + $modal = null; + }, + freshModal: function (title, content) { + if ($modal) { + $modal.remove(); + } + if ($overlay) { + $overlay.remove(); + } + var width = 500; + $overlay = $('
').hide(); + $modal = $('

').hide(); + $modal.find('h3').text(title); + $modal.find('.inside').append(content); + $('body') + .append($overlay) + .append($modal); + $overlay + .click(this.closeModal) + .css({ + display: 'block', + opacity: 0, + position: 'fixed', + zIndex: 10000, + top: '0px', + left: '0px', + height: '100%', + width: '100%', + background: '#000' + }) + .fadeTo(200, 0.5) + ; + $modal + .css({ + display: 'block', + position: 'fixed', + opacity: 0, + zIndex: 11000, + left: '50%', + marginLeft: -(width / 2) + 'px', + top: '100px', + background: '#fff', + border: '5px solid #666', + borderRadius: '5px', + width: width + 'px', + padding: '0 20px 20px 20px', + maxHeight: ($(window).height() - 150) + 'px', + overflowY: 'auto' + }) + .fadeTo(200, 1) + ; + } + }; + var supportsDownload = $('A')[0].download === 'x' ; - var $div = $("
") - , buttonCSS = { - background: "#eee" - , border: "1px solid #000" - , borderRadius: "5px" - , padding: "5px" - , margin: "5px" - , display: "block" - , width: "100%" - , color: "#000" - , textDecoration: "none" - , textAlign: "center" - , fontSize: "inherit" - } - , addButton = function (title, content, fileName, popupContent) { - if (supportsDownload) { - $("") - .appendTo($div) - .text(title) - .css(buttonCSS) - .attr({ - href: "data:text/html;charset=utf-8," + encodeURIComponent(content) - , download: fileName - }) - .click(function () { - ui.closeModal(); - }) - ; - } - else { - $("") - .appendTo($div) - .text(title) - .css(buttonCSS) - .click(function () { - popupContent(); - ui.closeModal(); - }) - ; - } - - } + var $div = $('
'), + buttonCSS = { + background: '#eee', + border: '1px solid #000', + borderRadius: '5px', + padding: '5px', + margin: '5px', + display: 'block', + width: '100%', + color: '#000', + textDecoration: 'none', + textAlign: 'center', + fontSize: 'inherit' + }, + addButton = function (title, content, fileName, popupContent) { + if (supportsDownload) { + $('') + .appendTo($div) + .text(title) + .css(buttonCSS) + .attr({ + href: 'data:text/html;charset=utf-8,' + encodeURIComponent(content), + download: fileName + }) + .click(function () { + ui.closeModal(); + }) + ; + } + else { + $('') + .appendTo($div) + .text(title) + .css(buttonCSS) + .click(function () { + popupContent(); + ui.closeModal(); + }) ; - var s = "var roleInfo = " + JSON.stringify(roleInfo, null, '\t') ; - addButton("Save Role Values", s, "roleInfo.js", s) ; - ui.freshModal("Save Roles, States, and Properties", $div); + } + } - }); + ; + var s = 'var roleInfo = ' + JSON.stringify(roleInfo, null, '\t') ; + addButton('Save Role Values', s, 'roleInfo.js', s) ; + ui.freshModal('Save Roles, States, and Properties', $div); + } + }); - respecEvents.sub("end", function( msg ) { - if (msg == "w3c/conformance") { - var propList = {}; - var globalSP = []; + respecEvents.sub('end', function (msg) { + if (msg == 'w3c/conformance') { + var propList = {}; + var globalSP = []; - var skipIndex = 0; - var myURL = document.URL; - if (myURL.match(/\?fast/)) { - skipIndex = 1; - } + var skipIndex = 0; + var myURL = document.URL; + if (myURL.match(/\?fast/)) { + skipIndex = 1; + } - // process the document before anything else is done - // first get the properties - $.each(document.querySelectorAll("pdef, sdef"), function(i, item) { - var type = (item.localName === "pdef" ? "property" : "state"); - var container = item.parentNode; - var content = item.innerHTML; - var sp = document.createElement("span"); - var title = item.getAttribute("title"); - if (!title) { - title = content; - } - sp.className = type + "-name"; - sp.title = title; - sp.innerHTML = "" + content + " (" + type + ")"; - sp.setAttribute("aria-describedby", "desc-" + title); - var dRef = item.nextElementSibling; - var desc = dRef.firstElementChild.innerHTML; - dRef.id = "desc-" + title; - dRef.setAttribute("role", "definition"); - var heading = document.createElement("h4"); - heading.appendChild(sp); - container.replaceChild(heading, item); - // add this item to the index - propList[title] = { is: type, title: title, name: content, desc: desc, roles: [] }; - var abstract = container.querySelector("." + type + "-applicability"); - if ((abstract.textContent || abstract.innerText) === "All elements of the base markup") { - globalSP.push({ is: type, title: title, name: content, desc: desc }); - } - - // the rdef is gone. if we are in a div, convert that div to a section - - if (container.nodeName.toLowerCase() == "div") { - // change the enclosing DIV to a section with notoc - var sec = document.createElement("section") ; - $.each(container.attributes, function(i, attr) { - sec.setAttribute(attr.name, attr.value); - }); - $(sec).addClass("notoc"); - var theContents = container.innerHTML; - sec.innerHTML = theContents; - container.parentNode.replaceChild(sec, container) ; - } - }); - - if (!skipIndex) { - // we have all the properties and states - spit out the - // index - var propIndex = ""; - var sortedList = []; - $.each(propList, function(i) { - sortedList.push(i); - }); - sortedList = sortedList.sort(); - - for (var i = 0; i < sortedList.length; i++) { - var item = propList[sortedList[i]]; - propIndex += "
" + item.name + "
\n"; - propIndex += "
" + item.desc + "
\n"; - } - var node = document.getElementById("index_state_prop"); - var parentNode = node.parentNode; - var l = document.createElement("dl"); - l.id = "index_state_prop"; - l.className = "compact"; - l.innerHTML = propIndex; - parentNode.replaceChild(l, node); - - var globalSPIndex = ""; - sortedList = globalSP.sort(function(a,b) { return a.name < b.name ? -1 : a.name > b.name ? 1 : 0 }); - for (i = 0; i < sortedList.length; i++) { - var lItem = sortedList[i]; - globalSPIndex += "
  • "; - if (lItem.is === "state") { - globalSPIndex += "" + lItem.name + " (state)"; - } else { - globalSPIndex += "" + lItem.name + ""; - } - globalSPIndex += "
  • \n"; - } - parentNode = document.querySelector("#global_states"); - if (parentNode) { - node = parentNode.querySelector(".placeholder"); - if (node) { - l = document.createElement("ul"); - l.innerHTML = globalSPIndex; - parentNode.replaceChild(l, node); - } - } - // there is only one role that uses the global properties - parentNode = document.querySelector("#roletype td.role-properties span.placeholder"); - if (parentNode) { - node = parentNode.parentNode; - if ((parentNode.textContent || parentNode.innerText) === "Placeholder for global states and properties") { - l = document.createElement("ul"); - l.innerHTML = globalSPIndex; - node.replaceChild(l, parentNode); - } - } + // process the document before anything else is done + // first get the properties + $.each(document.querySelectorAll('pdef, sdef'), function (i, item) { + var type = (item.localName === 'pdef' ? 'property' : 'state'); + var container = item.parentNode; + var content = item.innerHTML; + var sp = document.createElement('span'); + var title = item.getAttribute('title'); + if (!title) { + title = content; + } + sp.className = type + '-name'; + sp.title = title; + sp.innerHTML = '' + content + ' (' + type + ')'; + sp.setAttribute('aria-describedby', 'desc-' + title); + var dRef = item.nextElementSibling; + var desc = dRef.firstElementChild.innerHTML; + dRef.id = 'desc-' + title; + dRef.setAttribute('role', 'definition'); + var heading = document.createElement('h4'); + heading.appendChild(sp); + container.replaceChild(heading, item); + // add this item to the index + propList[title] = { is: type, title: title, name: content, desc: desc, roles: [] }; + var abstract = container.querySelector('.' + type + '-applicability'); + if ((abstract.textContent || abstract.innerText) === 'All elements of the base markup') { + globalSP.push({ is: type, title: title, name: content, desc: desc }); + } + + // the rdef is gone. if we are in a div, convert that div to a section + + if (container.nodeName.toLowerCase() == 'div') { + // change the enclosing DIV to a section with notoc + var sec = document.createElement('section') ; + $.each(container.attributes, function (i, attr) { + sec.setAttribute(attr.name, attr.value); + }); + $(sec).addClass('notoc'); + var theContents = container.innerHTML; + sec.innerHTML = theContents; + container.parentNode.replaceChild(sec, container) ; + } + }); + + if (!skipIndex) { + // we have all the properties and states - spit out the + // index + var propIndex = ''; + var sortedList = []; + $.each(propList, function (i) { + sortedList.push(i); + }); + sortedList = sortedList.sort(); + + for (var i = 0; i < sortedList.length; i++) { + var item = propList[sortedList[i]]; + propIndex += '
    ' + item.name + '
    \n'; + propIndex += '
    ' + item.desc + '
    \n'; + } + var node = document.getElementById('index_state_prop'); + var parentNode = node.parentNode; + var l = document.createElement('dl'); + l.id = 'index_state_prop'; + l.className = 'compact'; + l.innerHTML = propIndex; + parentNode.replaceChild(l, node); + + var globalSPIndex = ''; + sortedList = globalSP.sort(function (a,b) { return a.name < b.name ? -1 : a.name > b.name ? 1 : 0; }); + for (i = 0; i < sortedList.length; i++) { + var lItem = sortedList[i]; + globalSPIndex += '
  • '; + if (lItem.is === 'state') { + globalSPIndex += '' + lItem.name + ' (state)'; + } + else { + globalSPIndex += '' + lItem.name + ''; + } + globalSPIndex += '
  • \n'; + } + parentNode = document.querySelector('#global_states'); + if (parentNode) { + node = parentNode.querySelector('.placeholder'); + if (node) { + l = document.createElement('ul'); + l.innerHTML = globalSPIndex; + parentNode.replaceChild(l, node); + } + } + // there is only one role that uses the global properties + parentNode = document.querySelector('#roletype td.role-properties span.placeholder'); + if (parentNode) { + node = parentNode.parentNode; + if ((parentNode.textContent || parentNode.innerText) === 'Placeholder for global states and properties') { + l = document.createElement('ul'); + l.innerHTML = globalSPIndex; + node.replaceChild(l, parentNode); + } + } + } + + // what about roles? + // + // we need to do a few things here: + // 1. expand the rdef elements. + // 2. accumulate the roles into a table for the indices + // 3. grab the parent role reference so we can build up the tree + // 4. grab any local states and properties so we can hand those down to the children + // + + var subRoles = []; + var roleIndex = ''; + var fromAuthor = ''; + var fromContent = ''; + + $.each(document.querySelectorAll('rdef'), function (i,item) { + var container = item.parentNode; + var $pn = $(container) ; + var content = item.innerHTML; + var sp = document.createElement('h4'); + var title = item.getAttribute('title'); + if (!title) { + title = content; + } + var pnID = $pn.makeID('', title) ; + sp.className = 'role-name'; + sp.title = title; + // is this a role or an abstract role + var type = 'role'; + var isAbstract = false; + var abstract = container.querySelectorAll('.role-abstract'); + if ($(abstract).text() === 'True') { + type = 'abstract role'; + isAbstract = true; + } + sp.innerHTML = '' + content + ' (' + type + ')'; + // sp.id = title; + sp.setAttribute('aria-describedby', 'desc-' + title); + var dRef = item.nextElementSibling; + var desc = dRef.firstElementChild.innerHTML; + dRef.id = 'desc-' + title; + dRef.setAttribute('role', 'definition'); + container.replaceChild(sp, item); + roleIndex += '
    ' + content + '' + (isAbstract ? ' (abstract role) ' : '') + '
    \n'; + roleIndex += '
    ' + desc + '
    \n'; + // grab info about this role + // do we have a parent class? if so, put us in that parents list + var node = container.querySelectorAll('.role-parent rref'); + // s will hold the name of the parent role if any + var s = null; + var parentRoles = []; + if (node) { + $.each(node, function (foo, roleref) { + s = roleref.textContent || roleref.innerText; + + if (!subRoles[s]) { + subRoles.push(s); + subRoles[s] = []; + } + subRoles[s].push(title); + parentRoles.push(s); + }); + } + // are there supported states / properties in this role? + var attrs = []; + $.each(container.querySelectorAll('.role-properties, .role-required-properties'), function (i, node) { + if (node && ((node.textContent && node.textContent.length !== 1) || (node.innerText && node.innerText.length !== 1))) { + // looks like we do + $.each(node.querySelectorAll('pref,sref'), function (i, item) { + var name = item.getAttribute('title'); + if (!name) { + name = item.textContent || item.innerText; + } + var type = (item.localName === 'pref' ? 'property' : 'state'); + var req = false; + if ($(node).hasClass('role-required-properties')) { + req = true; + } + attrs.push({ is: type, name: name, required: req }); + // remember that the state or property is + // referenced by this role + propList[name].roles.push(title); + }); + } + }); + roleInfo[title] = { 'name': title, 'fragID': pnID, 'parentRoles': parentRoles, 'localprops': attrs }; + // is there a namefrom indication? If so, add this one to + // the list + if (!isAbstract) { + $.each(container.querySelectorAll('.role-namefrom'), function (i, node) { + var reqRef = container.querySelector('.role-namerequired'); + var req = ''; + if (reqRef && reqRef.innerText === 'True') { + req = ' (name required)'; + } + + if ($(node).find('li').length) { + // there is a list; put it in both lists + fromAuthor += '
  • ' + content + '' + req + '
  • '; + if (!isAbstract) { + fromContent += '
  • ' + content + '' + '
  • '; + } + } + else { + // it is a text node; use that + if (node.textContent.indexOf('author') !== -1) { + fromAuthor += '
  • ' + content + '' + req + '
  • '; + } + else if (node.textContent.indexOf('content') !== -1) { + if (!isAbstract) { + fromContent += '
  • ' + content + '' + '
  • '; } + } + } + }); + } + if (container.nodeName.toLowerCase() == 'div') { + // change the enclosing DIV to a section with notoc + var sec = document.createElement('section') ; + $.each(container.attributes, function (i, attr) { + sec.setAttribute(attr.name, attr.value); + }); + $(sec).addClass('notoc'); + var theContents = container.innerHTML; + sec.innerHTML = theContents; + container.parentNode.replaceChild(sec, container) ; + } + }); - // what about roles? - // - // we need to do a few things here: - // 1. expand the rdef elements. - // 2. accumulate the roles into a table for the indices - // 3. grab the parent role reference so we can build up the tree - // 4. grab any local states and properties so we can hand those down to the children - // - - var subRoles = []; - var roleIndex = ""; - var fromAuthor = ""; - var fromContent = ""; - - $.each(document.querySelectorAll("rdef"), function(i,item) { - var container = item.parentNode; - var $pn = $(container) ; - var content = item.innerHTML; - var sp = document.createElement("h4"); - var title = item.getAttribute("title"); - if (!title) { - title = content; - } - var pnID = $pn.makeID("", title) ; - sp.className = "role-name"; - sp.title = title; - // is this a role or an abstract role - var type = "role"; - var isAbstract = false; - var abstract = container.querySelectorAll(".role-abstract"); - if ($(abstract).text() === "True") { - type = "abstract role"; - isAbstract = true; - } - sp.innerHTML = "" + content + " (" + type + ")"; - // sp.id = title; - sp.setAttribute("aria-describedby", "desc-" + title); - var dRef = item.nextElementSibling; - var desc = dRef.firstElementChild.innerHTML; - dRef.id = "desc-" + title; - dRef.setAttribute("role", "definition"); - container.replaceChild(sp, item); - roleIndex += "
    " + content + "" + ( isAbstract ? " (abstract role) " : "" ) + "
    \n"; - roleIndex += "
    " + desc + "
    \n"; - // grab info about this role - // do we have a parent class? if so, put us in that parents list - var node = container.querySelectorAll(".role-parent rref"); - // s will hold the name of the parent role if any - var s = null; - var parentRoles = []; - if (node) { - $.each(node, function(foo, roleref) { - s = roleref.textContent || roleref.innerText; - - if (!subRoles[s]) { - subRoles.push(s); - subRoles[s] = []; - } - subRoles[s].push(title); - parentRoles.push(s); - }); - } - // are there supported states / properties in this role? - var attrs = []; - $.each(container.querySelectorAll(".role-properties, .role-required-properties"), function(i, node) { - if (node && ((node.textContent && node.textContent.length !== 1) || (node.innerText && node.innerText.length !== 1))) { - // looks like we do - $.each(node.querySelectorAll("pref,sref"), function(i, item) { - var name = item.getAttribute("title"); - if (!name) { - name = item.textContent || item.innerText; - } - var type = (item.localName === "pref" ? "property" : "state"); - var req = false; - if ($(node).hasClass("role-required-properties") ) { - req = true; - } - attrs.push( { is: type, name: name, required: req } ); - // remember that the state or property is - // referenced by this role - propList[name].roles.push(title); - }); - } - }); - roleInfo[title] = { "name": title, "fragID": pnID, "parentRoles": parentRoles, "localprops": attrs }; - // is there a namefrom indication? If so, add this one to - // the list - if (!isAbstract) { - $.each(container.querySelectorAll(".role-namefrom"), function(i, node) { - var reqRef = container.querySelector(".role-namerequired"); - var req = ""; - if (reqRef && reqRef.innerText === "True") { - req = " (name required)"; - } - - if ($(node).find("li").length) { - // there is a list; put it in both lists - fromAuthor += "
  • " + content + "" + req + "
  • "; - if (!isAbstract) { - fromContent += "
  • " + content + "" + "
  • "; - } - } else { - // it is a text node; use that - if (node.textContent.indexOf("author") !== -1) { - fromAuthor += "
  • " + content + "" + req + "
  • "; - } else if (node.textContent.indexOf("content") !== -1) { - if (!isAbstract) { - fromContent += "
  • " + content + "" + "
  • "; - } - } - } - }); - } - if (container.nodeName.toLowerCase() == "div") { - // change the enclosing DIV to a section with notoc - var sec = document.createElement("section") ; - $.each(container.attributes, function(i, attr) { - sec.setAttribute(attr.name, attr.value); - }); - $(sec).addClass("notoc"); - var theContents = container.innerHTML; - sec.innerHTML = theContents; - container.parentNode.replaceChild(sec, container) ; - } + var getStates = function (role) { + var ref = roleInfo[role]; + if (!ref) { + msg.pub('error', 'No role definition for ' + role); + } + else if (ref.allprops) { + return ref.allprops; + } + else { + var myList = []; + $.merge(myList, ref.localprops); + $.each(ref.parentRoles, function (i, item) { + var pList = getStates(item); + $.merge(myList, pList); + }); + ref.allprops = myList; + return myList; + } + }; + + if (!skipIndex) { + // build up the complete inherited SP lists for each role + // however, if the role already specifies an item, do not include it + $.each(roleInfo, function (i, item) { + var output = ''; + var placeholder = document.querySelector('#' + item.fragID + ' .role-inherited'); + if (placeholder) { + var myList = []; + $.each(item.parentRoles, function (j, role) { + $.merge(myList, getStates(role)); + }); + /* jshint loopfunc: true */ + // strip out any items that we have locally + if (item.localprops.length && myList.length) { + for (var j = myList.length - 1; j >= 0; j--) { + item.localprops.forEach(function (x) { + if (x.name == myList[j].name) { + myList.splice(j, 1); + } }); + } + } + var sortedList = []; + sortedList = myList.sort(function (a,b) { return a.name < b.name ? -1 : a.name > b.name ? 1 : 0; }); + var prev; + for (var k = 0; k < sortedList.length; k++) { + var role = sortedList[k]; + var req = ''; + if (role.required) { + req = ' (required)'; + } + if (prev != role.name) { + output += '
  • '; + if (role.is === 'state') { + output += '' + role.name + ' (state)' + req; + } + else { + output += '' + role.name + '' + req; + } + output += '
  • \n'; + prev = role.name; + } + } + if (output !== '') { + output = '\n'; + placeholder.innerHTML = output; + } + } + }); - var getStates = function(role) { - var ref = roleInfo[role]; - if (!ref) { - msg.pub("error", "No role definition for " + role); - } else if (ref.allprops) { - return ref.allprops; - } else { - var myList = []; - $.merge(myList, ref.localprops); - $.each(ref.parentRoles, function(i, item) { - var pList = getStates(item); - $.merge(myList, pList); - }); - ref.allprops = myList; - return myList; - } - }; - - if (!skipIndex) { - // build up the complete inherited SP lists for each role - // however, if the role already specifies an item, do not include it - $.each(roleInfo, function(i, item) { - var output = ""; - var placeholder = document.querySelector("#" + item.fragID + " .role-inherited"); - if (placeholder) { - var myList = []; - $.each(item.parentRoles, function(j, role) { - $.merge(myList, getStates(role)); - }); - /* jshint loopfunc: true */ - // strip out any items that we have locally - if (item.localprops.length && myList.length) { - for (var j = myList.length - 1; j >=0; j--) { - item.localprops.forEach(function(x) { - if (x.name == myList[j].name) { - myList.splice(j, 1); - } - }); - } - } - var sortedList = []; - sortedList = myList.sort(function(a,b) { return a.name < b.name ? -1 : a.name > b.name ? 1 : 0 }); - var prev; - for (var k = 0; k < sortedList.length; k++) { - var role = sortedList[k]; - var req = ""; - if (role.required) { - req = " (required)"; - } - if (prev != role.name) { - output += "
  • "; - if (role.is === "state") { - output += "" + role.name + " (state)" + req; - } else { - output += "" + role.name + "" + req; - } - output += "
  • \n"; - prev = role.name; - } - } - if (output !== "") { - output = "\n"; - placeholder.innerHTML = output; - } - } - }); - - // Update state and property role references - var getAllSubRoles = function(role) { - var ref = subRoles[role]; - if (ref && ref.length) { - var myList = []; - $.each(ref, function(j, item) { - if (!myList.item) { - myList[item] = 1; - myList.push(item); - var childList = getAllSubRoles(item); - $.merge(myList, childList); - } - }); - return myList; - } else { - return []; - } - }; - - $.each(propList, function(i, item) { - var output = ""; - var section = document.querySelector("#" + item.name); - var placeholder = section.querySelector(".state-applicability, .property-applicability"); - if (placeholder && ((placeholder.textContent || placeholder.innerText) === "Placeholder") && item.roles.length) { - // update the used in roles list - var sortedList = []; - sortedList = item.roles.sort(); - for (var j = 0; j < sortedList.length; j++) { - output += "
  • " + sortedList[j] + "
  • \n"; - } - if (output !== "") { - output = "\n"; - } - placeholder.innerHTML = output; - // also update any inherited roles - var myList = []; - $.each(item.roles, function(j, role) { - var children = getAllSubRoles(role); - // Some subroles have required properties which are also required by the superclass. - // Example: The checked state of radio, which is also required by superclass checkbox. - // We only want to include these one time, so filter out the subroles. - children = jQuery.grep(children, function(subrole) { - return jQuery.inArray(subrole, propList[item.name].roles) == -1; - }); - $.merge(myList, children); - }); - placeholder = section.querySelector(".state-descendants, .property-descendants"); - if (placeholder && myList.length) { - sortedList = myList.sort(); - output = ""; - var last = ""; - for (j = 0; j < sortedList.length; j++) { - var sItem = sortedList[j]; - if (last != sItem) { - output += "
  • " + sItem + "
  • \n"; - last = sItem; - } - } - if (output !== "") { - output = "\n"; - } - placeholder.innerHTML = output; - } - } - }); - - // spit out the index - var node = document.getElementById("index_role"); - var parentNode = node.parentNode; - var list = document.createElement("dl"); - list.id = "index_role"; - list.className = "compact"; - list.innerHTML = roleIndex; - parentNode.replaceChild(list, node); - - // and the namefrom lists - node = document.getElementById("index_fromauthor"); - if (node) { - parentNode = node.parentNode; - list = document.createElement("ul"); - list.id = "index_fromauthor"; - list.className = "compact"; - list.innerHTML = fromAuthor; - parentNode.replaceChild(list, node); - } - - node = document.getElementById("index_fromcontent"); - if (node) { - parentNode = node.parentNode; - list = document.createElement("ul"); - list.id = "index_fromcontent"; - list.className = "compact"; - list.innerHTML = fromContent; - parentNode.replaceChild(list, node); - } - - // assuming we found some parent roles, update those parents with their children - for (var i=0; i < subRoles.length; i++) { - var item = subRoles[subRoles[i]]; - var sortedList = item.sort(function(a,b) { return a < b ? -1 : a > b ? 1 : 0 }); - var output = "\n"; - // put it somewhere - var subRolesContainer = document.querySelector("#" + subRoles[i]); - if (subRolesContainer) { - var subRolesListContainer = subRolesContainer.querySelector(".role-children"); - if (subRolesListContainer) { - subRolesListContainer.innerHTML = output; - } - } - } + // Update state and property role references + var getAllSubRoles = function (role) { + var ref = subRoles[role]; + if (ref && ref.length) { + var myList = []; + $.each(ref, function (j, item) { + if (!myList.item) { + myList[item] = 1; + myList.push(item); + var childList = getAllSubRoles(item); + $.merge(myList, childList); + } + }); + return myList; + } + else { + return []; + } + }; + $.each(propList, function (i, item) { + var output = ''; + var section = document.querySelector('#' + item.name); + var placeholder = section.querySelector('.state-applicability, .property-applicability'); + if (placeholder && ((placeholder.textContent || placeholder.innerText) === 'Placeholder') && item.roles.length) { + // update the used in roles list + var sortedList = []; + sortedList = item.roles.sort(); + for (var j = 0; j < sortedList.length; j++) { + output += '
  • ' + sortedList[j] + '
  • \n'; + } + if (output !== '') { + output = '\n'; + } + placeholder.innerHTML = output; + // also update any inherited roles + var myList = []; + $.each(item.roles, function (j, role) { + var children = getAllSubRoles(role); + // Some subroles have required properties which are also required by the superclass. + // Example: The checked state of radio, which is also required by superclass checkbox. + // We only want to include these one time, so filter out the subroles. + children = jQuery.grep(children, function (subrole) { + return jQuery.inArray(subrole, propList[item.name].roles) == -1; + }); + $.merge(myList, children); + }); + placeholder = section.querySelector('.state-descendants, .property-descendants'); + if (placeholder && myList.length) { + sortedList = myList.sort(); + output = ''; + var last = ''; + for (j = 0; j < sortedList.length; j++) { + var sItem = sortedList[j]; + if (last != sItem) { + output += '
  • ' + sItem + '
  • \n'; + last = sItem; } + } + if (output !== '') { + output = '\n'; + } + placeholder.innerHTML = output; + } + } + }); - // prune out unused rows throughout the document - - $.each(document.querySelectorAll(".role-abstract, .role-parent, .role-base, .role-related, .role-scope, .role-mustcontain, .role-required-properties, .role-properties, .role-namefrom, .role-namerequired, .role-namerequired-inherited, .role-childpresentational, .role-presentational-inherited, .state-related, .property-related,.role-inherited, .role-children, .property-descendants, .state-descendants, .implicit-values"), function(i, item) { - var content = $(item).text(); - if (content.length === 1 || content.length === 0) { - // there is no item - remove the row - item.parentNode.remove(); - } else if (content === "Placeholder" - && !skipIndex - && (item.className === "role-inherited" - || item.className === "role-children" - || item.className === "property-descendants" - || item.className === "state-descendants" )) { - item.parentNode.remove(); - } - }); + // spit out the index + var node = document.getElementById('index_role'); + var parentNode = node.parentNode; + var list = document.createElement('dl'); + list.id = 'index_role'; + list.className = 'compact'; + list.innerHTML = roleIndex; + parentNode.replaceChild(list, node); - updateReferences(document); + // and the namefrom lists + node = document.getElementById('index_fromauthor'); + if (node) { + parentNode = node.parentNode; + list = document.createElement('ul'); + list.id = 'index_fromauthor'; + list.className = 'compact'; + list.innerHTML = fromAuthor; + parentNode.replaceChild(list, node); + } + + node = document.getElementById('index_fromcontent'); + if (node) { + parentNode = node.parentNode; + list = document.createElement('ul'); + list.id = 'index_fromcontent'; + list.className = 'compact'; + list.innerHTML = fromContent; + parentNode.replaceChild(list, node); + } + // assuming we found some parent roles, update those parents with their children + for (var i = 0; i < subRoles.length; i++) { + var item = subRoles[subRoles[i]]; + var sortedList = item.sort(function (a,b) { return a < b ? -1 : a > b ? 1 : 0; }); + var output = '\n'; + // put it somewhere + var subRolesContainer = document.querySelector('#' + subRoles[i]); + if (subRolesContainer) { + var subRolesListContainer = subRolesContainer.querySelector('.role-children'); + if (subRolesListContainer) { + subRolesListContainer.innerHTML = output; } - }); + } + } + + } + + // prune out unused rows throughout the document + + $.each(document.querySelectorAll('.role-abstract, .role-parent, .role-base, .role-related, .role-scope, .role-mustcontain, .role-required-properties, .role-properties, .role-namefrom, .role-namerequired, .role-namerequired-inherited, .role-childpresentational, .role-presentational-inherited, .state-related, .property-related,.role-inherited, .role-children, .property-descendants, .state-descendants, .implicit-values'), function (i, item) { + var content = $(item).text(); + if (content.length === 1 || content.length === 0) { + // there is no item - remove the row + item.parentNode.remove(); + } + else if (content === 'Placeholder' && + !skipIndex && + (item.className === 'role-inherited' || + item.className === 'role-children' || + item.className === 'property-descendants' || + item.className === 'state-descendants')) { + item.parentNode.remove(); + } + }); + + updateReferences(document); + + } + }); }); diff --git a/common/script/ariaChild.js b/common/script/ariaChild.js index 5e5c623bf1..b606b3742d 100644 --- a/common/script/ariaChild.js +++ b/common/script/ariaChild.js @@ -7,338 +7,343 @@ /* global $, require, roleInfo, updateReferences */ var localRoleInfo = {} ; -require(["core/pubsubhub"], function( respecEvents ) { - respecEvents.sub("end", function( msg ) { - if (msg == "w3c/conformance") { - var propList = {}; - var globalSP = []; +require([ 'core/pubsubhub' ], function (respecEvents) { + respecEvents.sub('end', function (msg) { + if (msg == 'w3c/conformance') { + var propList = {}; + var globalSP = []; - var skipIndex = 0; - var myURL = document.URL; - if (myURL.match(/\?fast/)) { - skipIndex = 1; - } + var skipIndex = 0; + var myURL = document.URL; + if (myURL.match(/\?fast/)) { + skipIndex = 1; + } - // process the document before anything else is done - // first get the properties - $.each(document.querySelectorAll("pdef, sdef"), function(i, item) { - var type = (item.localName === "pdef" ? "property" : "state"); - var container = item.parentNode; - var content = item.innerHTML; - var sp = document.createElement("span"); - var title = item.getAttribute("title"); - if (!title) { - title = content; - } - sp.className = type + "-name"; - sp.title = title; - sp.innerHTML = "" + content + " (" + type + ")"; - sp.setAttribute("aria-describedby", "desc-" + title); - var dRef = item.nextElementSibling; - var desc = dRef.firstElementChild.innerHTML; - dRef.id = "desc-" + title; - dRef.setAttribute("role", "definition"); - var heading = document.createElement("h3"); - heading.appendChild(sp); - container.replaceChild(heading, item); - // add this item to the index - propList[title] = { is: type, title: title, name: content, desc: desc, roles: [] }; - var abstract = container.querySelector("." + type + "-applicability"); - if ((abstract.textContent || abstract.innerText) === "All elements of the base markup") { - globalSP.push({ is: type, title: title, name: content, desc: desc }); - } - // the pdef/sdef is gone. if we are in a div, convert that div to a section + // process the document before anything else is done + // first get the properties + $.each(document.querySelectorAll('pdef, sdef'), function (i, item) { + var type = (item.localName === 'pdef' ? 'property' : 'state'); + var container = item.parentNode; + var content = item.innerHTML; + var sp = document.createElement('span'); + var title = item.getAttribute('title'); + if (!title) { + title = content; + } + sp.className = type + '-name'; + sp.title = title; + sp.innerHTML = '' + content + ' (' + type + ')'; + sp.setAttribute('aria-describedby', 'desc-' + title); + var dRef = item.nextElementSibling; + var desc = dRef.firstElementChild.innerHTML; + dRef.id = 'desc-' + title; + dRef.setAttribute('role', 'definition'); + var heading = document.createElement('h3'); + heading.appendChild(sp); + container.replaceChild(heading, item); + // add this item to the index + propList[title] = { is: type, title: title, name: content, desc: desc, roles: [] }; + var abstract = container.querySelector('.' + type + '-applicability'); + if ((abstract.textContent || abstract.innerText) === 'All elements of the base markup') { + globalSP.push({ is: type, title: title, name: content, desc: desc }); + } + // the pdef/sdef is gone. if we are in a div, convert that div to a section - if (container.nodeName.toLowerCase() == "div") { - // change the enclosing DIV to a section with notoc - var sec = document.createElement("section") ; - $.each(container.attributes, function(i, attr) { - sec.setAttribute(attr.name, attr.value); - }); - $(sec).addClass("notoc"); - var theContents = container.innerHTML; - sec.innerHTML = theContents; - container.parentNode.replaceChild(sec, container) ; - } + if (container.nodeName.toLowerCase() == 'div') { + // change the enclosing DIV to a section with notoc + var sec = document.createElement('section') ; + $.each(container.attributes, function (i, attr) { + sec.setAttribute(attr.name, attr.value); + }); + $(sec).addClass('notoc'); + var theContents = container.innerHTML; + sec.innerHTML = theContents; + container.parentNode.replaceChild(sec, container) ; + } - }); - - // what about roles? - // - // we need to do a few things here: - // 1. expand the rdef elements. - // 2. accumulate the roles into a table for the indices - // 3. grab the parent role reference so we can build up the tree - // 4. grab any local states and properties so we can hand those down to the children - // + }); - var subRoles = []; - var roleIndex = ""; + // what about roles? + // + // we need to do a few things here: + // 1. expand the rdef elements. + // 2. accumulate the roles into a table for the indices + // 3. grab the parent role reference so we can build up the tree + // 4. grab any local states and properties so we can hand those down to the children + // - $.each(document.querySelectorAll("rdef"), function(i,item) { - var container = item.parentNode; - var $pn = $(container) ; - var content = item.innerHTML; - var sp = document.createElement("h3"); - var title = item.getAttribute("title"); - if (!title) { - title = content; - } - var pnID = $pn.makeID("", title) ; - sp.className = "role-name"; - sp.title = title; - // is this a role or an abstract role - var type = "role"; - var abstract = container.querySelectorAll(".role-abstract"); - if ($(abstract).text() === "True") { - type = "abstract role"; - } - sp.innerHTML = "" + content + " (" + type + ")"; - // sp.id = title; - sp.setAttribute("aria-describedby", "desc-" + title); - var dRef = item.nextElementSibling; - var desc = dRef.firstElementChild.innerHTML; - dRef.id = "desc-" + title; - dRef.setAttribute("role", "definition"); - container.replaceChild(sp, item); - roleIndex += "
    " + content + "
    \n"; - roleIndex += "
    " + desc + "
    \n"; - // grab info about this role - // do we have a parent class? if so, put us in that parents list - var node = container.querySelectorAll(".role-parent rref"); - // s will hold the name of the parent role if any - var s = null; - var parentRoles = []; - if (node) { - $.each(node, function(foo, roleref) { - s = roleref.textContent || roleref.innerText; + var subRoles = []; + var roleIndex = ''; - if (!subRoles[s]) { - subRoles.push(s); - subRoles[s] = []; - } - subRoles[s].push(title); - parentRoles.push(s); - }); - } - // are there supported states / properties in this role? - var attrs = []; - $.each(container.querySelectorAll(".role-properties, .role-required-properties"), function(i, node) { - if (node && ((node.textContent && node.textContent.length !== 1) || (node.innerText && node.innerText.length !== 1))) { - // looks like we do - $.each(node.querySelectorAll("pref,sref"), function(i, item) { - var name = item.getAttribute("title"); - if (!name) { - name = item.textContent || item.innerText; - } - var type = (item.localName === "pref" ? "property" : "state"); - var req = ($(node).hasClass("role-required-properties") ? true : false ); - attrs.push( { is: type, name: name, required: req } ); - // remember that the state or property is - // referenced by this role - propList[name].roles.push(title); - }); - } - }); - localRoleInfo[title] = { "name": title, "fragID": pnID, "parentRoles": parentRoles, "localprops": attrs }; - if (container.nodeName.toLowerCase() == "div") { - // change the enclosing DIV to a section with notoc - var sec = document.createElement("section") ; - $.each(container.attributes, function(i, attr) { - sec.setAttribute(attr.name, attr.value); - }); - $(sec).addClass("notoc"); - var theContents = container.innerHTML; - sec.innerHTML = theContents; - container.parentNode.replaceChild(sec, container) ; - } - }); + $.each(document.querySelectorAll('rdef'), function (i,item) { + var container = item.parentNode; + var $pn = $(container) ; + var content = item.innerHTML; + var sp = document.createElement('h3'); + var title = item.getAttribute('title'); + if (!title) { + title = content; + } + var pnID = $pn.makeID('', title) ; + sp.className = 'role-name'; + sp.title = title; + // is this a role or an abstract role + var type = 'role'; + var abstract = container.querySelectorAll('.role-abstract'); + if ($(abstract).text() === 'True') { + type = 'abstract role'; + } + sp.innerHTML = '' + content + ' (' + type + ')'; + // sp.id = title; + sp.setAttribute('aria-describedby', 'desc-' + title); + var dRef = item.nextElementSibling; + var desc = dRef.firstElementChild.innerHTML; + dRef.id = 'desc-' + title; + dRef.setAttribute('role', 'definition'); + container.replaceChild(sp, item); + roleIndex += '
    ' + content + '
    \n'; + roleIndex += '
    ' + desc + '
    \n'; + // grab info about this role + // do we have a parent class? if so, put us in that parents list + var node = container.querySelectorAll('.role-parent rref'); + // s will hold the name of the parent role if any + var s = null; + var parentRoles = []; + if (node) { + $.each(node, function (foo, roleref) { + s = roleref.textContent || roleref.innerText; - var getStates = function(role) { - var ref = localRoleInfo[role]; - if (!ref) { - ref = roleInfo[role]; - } - if (!ref) { - msg.pub("error", "No role definition for " + role); - } else if (ref.allprops) { - return ref.allprops; - } else { - var myList = []; - $.merge(myList, ref.localprops); - $.each(ref.parentRoles, function(i, item) { - var pList = getStates(item); - $.merge(myList, pList); - }); - ref.allprops = myList; - return myList; - } - }; - - if (!skipIndex) { - // build up the complete inherited SP lists for each role - $.each(localRoleInfo, function(i, item) { - var output = ""; - var placeholder = document.querySelector("#" + item.fragID + " .role-inherited"); - if (placeholder) { - var myList = []; - $.each(item.parentRoles, function(j, role) { - $.merge(myList, getStates(role)); - }); - // strip out any items that we have locally - /* jshint loopfunc: true */ - if (item.localprops.length && myList.length) { - for (var j = myList.length - 1; j >=0; j--) { - item.localprops.forEach(function(x) { - if (x.name == myList[j].name) { - myList.splice(j, 1); - } - }); - } - } - var sortedList = []; - sortedList = myList.sort(function(a,b) { return a.name < b.name ? -1 : a.name > b.name ? 1 : 0; }); - var prev; - for (var k = 0; k < sortedList.length; k++) { - var role = sortedList[k]; - var req = ""; - if (role.required) { - req = " (required)"; - } - if (prev != role.name) { - output += "
  • "; - if (role.is === "state") { - output += "" + role.name + " (state)" + req; - } else { - output += "" + role.name + "" + req; - } - output += "
  • \n"; - prev = role.name; - } - } - if (output !== "") { - output = "\n"; - placeholder.innerHTML = output; - } - } - }); - - // Update state and property role references - var getAllSubRoles = function(role) { - var ref = subRoles[role]; - if (ref && ref.length) { - var myList = []; - $.each(ref, function(j, item) { - if (!myList.item) { - myList[item] = 1; - myList.push(item); - var childList = getAllSubRoles(item); - $.merge(myList, childList); - } - }); - return myList; - } else { - return []; - } - }; - - $.each(propList, function(i, item) { - var output = ""; - var section = document.querySelector("#" + item.name); - var placeholder = section.querySelector(".state-applicability, .property-applicability"); - if (placeholder && ((placeholder.textContent || placeholder.innerText) === "Placeholder") && item.roles.length) { - // update the used in roles list - var sortedList = []; - sortedList = item.roles.sort(); - for (var j = 0; j < sortedList.length; j++) { - output += "
  • " + sortedList[j] + "
  • \n"; - } - if (output !== "") { - output = "\n"; - } - placeholder.innerHTML = output; - // also update any inherited roles - var myList = []; - $.each(item.roles, function(j, role) { - var children = getAllSubRoles(role); - // Some subroles have required properties which are also required by the superclass. - // Example: The checked state of radio, which is also required by superclass checkbox. - // We only want to include these one time, so filter out the subroles. - children = jQuery.grep(children, function(subrole) { - return jQuery.inArray(subrole, propList[item.name].roles) == -1; - }); - $.merge(myList, children); - }); - placeholder = section.querySelector(".state-descendants, .property-descendants"); - if (placeholder && myList.length) { - sortedList = myList.sort(); - output = ""; - var last = ""; - for (var k = 0; k < sortedList.length; k++) { - var lItem = sortedList[k]; - if (last != lItem) { - output += "
  • " + lItem + "
  • \n"; - last = lItem; - } - } - if (output !== "") { - output = "\n"; - } - placeholder.innerHTML = output; - } - } - }); - - // spit out the index - var node = document.getElementById("index_role"); - var parentNode = node.parentNode; - var list = document.createElement("dl"); - list.id = "index_role"; - list.className = "compact"; - list.innerHTML = roleIndex; - parentNode.replaceChild(list, node); + if (!subRoles[s]) { + subRoles.push(s); + subRoles[s] = []; + } + subRoles[s].push(title); + parentRoles.push(s); + }); + } + // are there supported states / properties in this role? + var attrs = []; + $.each(container.querySelectorAll('.role-properties, .role-required-properties'), function (i, node) { + if (node && ((node.textContent && node.textContent.length !== 1) || (node.innerText && node.innerText.length !== 1))) { + // looks like we do + $.each(node.querySelectorAll('pref,sref'), function (i, item) { + var name = item.getAttribute('title'); + if (!name) { + name = item.textContent || item.innerText; + } + var type = (item.localName === 'pref' ? 'property' : 'state'); + var req = ($(node).hasClass('role-required-properties') ? true : false); + attrs.push({ is: type, name: name, required: req }); + // remember that the state or property is + // referenced by this role + propList[name].roles.push(title); + }); + } + }); + localRoleInfo[title] = { 'name': title, 'fragID': pnID, 'parentRoles': parentRoles, 'localprops': attrs }; + if (container.nodeName.toLowerCase() == 'div') { + // change the enclosing DIV to a section with notoc + var sec = document.createElement('section') ; + $.each(container.attributes, function (i, attr) { + sec.setAttribute(attr.name, attr.value); + }); + $(sec).addClass('notoc'); + var theContents = container.innerHTML; + sec.innerHTML = theContents; + container.parentNode.replaceChild(sec, container) ; + } + }); - // assuming we found some parent roles, update those parents with their children - for (var i=0; i < subRoles.length; i++) { - var item = subRoles[subRoles[i]]; - var sortedList = item.sort(function(a,b) { return a < b ? -1 : a > b ? 1 : 0 }); - var output = "\n"; - // put it somewhere - var subRolesContainer = document.querySelector("#" + subRoles[i]); - if (subRolesContainer) { - var subRolesListContainer = subRolesContainer.querySelector(".role-children"); - if (subRolesListContainer) { - subRolesListContainer.innerHTML = output; - } - } - } + var getStates = function (role) { + var ref = localRoleInfo[role]; + if (!ref) { + ref = roleInfo[role]; + } + if (!ref) { + msg.pub('error', 'No role definition for ' + role); + } + else if (ref.allprops) { + return ref.allprops; + } + else { + var myList = []; + $.merge(myList, ref.localprops); + $.each(ref.parentRoles, function (i, item) { + var pList = getStates(item); + $.merge(myList, pList); + }); + ref.allprops = myList; + return myList; + } + }; + if (!skipIndex) { + // build up the complete inherited SP lists for each role + $.each(localRoleInfo, function (i, item) { + var output = ''; + var placeholder = document.querySelector('#' + item.fragID + ' .role-inherited'); + if (placeholder) { + var myList = []; + $.each(item.parentRoles, function (j, role) { + $.merge(myList, getStates(role)); + }); + // strip out any items that we have locally + /* jshint loopfunc: true */ + if (item.localprops.length && myList.length) { + for (var j = myList.length - 1; j >= 0; j--) { + item.localprops.forEach(function (x) { + if (x.name == myList[j].name) { + myList.splice(j, 1); + } + }); + } + } + var sortedList = []; + sortedList = myList.sort(function (a,b) { return a.name < b.name ? -1 : a.name > b.name ? 1 : 0; }); + var prev; + for (var k = 0; k < sortedList.length; k++) { + var role = sortedList[k]; + var req = ''; + if (role.required) { + req = ' (required)'; + } + if (prev != role.name) { + output += '
  • '; + if (role.is === 'state') { + output += '' + role.name + ' (state)' + req; + } + else { + output += '' + role.name + '' + req; } + output += '
  • \n'; + prev = role.name; + } + } + if (output !== '') { + output = '\n'; + placeholder.innerHTML = output; + } + } + }); - updateReferences(document); + // Update state and property role references + var getAllSubRoles = function (role) { + var ref = subRoles[role]; + if (ref && ref.length) { + var myList = []; + $.each(ref, function (j, item) { + if (!myList.item) { + myList[item] = 1; + myList.push(item); + var childList = getAllSubRoles(item); + $.merge(myList, childList); + } + }); + return myList; + } + else { + return []; + } + }; - // prune out unused rows throughout the document - - $.each(document.querySelectorAll(".role-abstract, .role-parent, .role-base, .role-related, .role-scope, .role-mustcontain, .role-required-properties, .role-properties, .role-namefrom, .role-namerequired, .role-namerequired-inherited, .role-childpresentational, .role-presentational-inherited, .state-related, .property-related,.role-inherited, .role-children, .property-descendants, .state-descendants, .implicit-values"), function(i, item) { - var content = $(item).text(); - if (content.length === 1 || content.length === 0) { - // there is no item - remove the row - item.parentNode.remove(); - } else if (content === "Placeholder" - && !skipIndex - && (item.className === "role-inherited" - || item.className === "role-children" - || item.className === "property-descendants" - || item.className === "state-descendants" )) { - item.parentNode.remove(); - } - }); + $.each(propList, function (i, item) { + var output = ''; + var section = document.querySelector('#' + item.name); + var placeholder = section.querySelector('.state-applicability, .property-applicability'); + if (placeholder && ((placeholder.textContent || placeholder.innerText) === 'Placeholder') && item.roles.length) { + // update the used in roles list + var sortedList = []; + sortedList = item.roles.sort(); + for (var j = 0; j < sortedList.length; j++) { + output += '
  • ' + sortedList[j] + '
  • \n'; } - }); + if (output !== '') { + output = '\n'; + } + placeholder.innerHTML = output; + // also update any inherited roles + var myList = []; + $.each(item.roles, function (j, role) { + var children = getAllSubRoles(role); + // Some subroles have required properties which are also required by the superclass. + // Example: The checked state of radio, which is also required by superclass checkbox. + // We only want to include these one time, so filter out the subroles. + children = jQuery.grep(children, function (subrole) { + return jQuery.inArray(subrole, propList[item.name].roles) == -1; + }); + $.merge(myList, children); + }); + placeholder = section.querySelector('.state-descendants, .property-descendants'); + if (placeholder && myList.length) { + sortedList = myList.sort(); + output = ''; + var last = ''; + for (var k = 0; k < sortedList.length; k++) { + var lItem = sortedList[k]; + if (last != lItem) { + output += '
  • ' + lItem + '
  • \n'; + last = lItem; + } + } + if (output !== '') { + output = '\n'; + } + placeholder.innerHTML = output; + } + } + }); + + // spit out the index + var node = document.getElementById('index_role'); + var parentNode = node.parentNode; + var list = document.createElement('dl'); + list.id = 'index_role'; + list.className = 'compact'; + list.innerHTML = roleIndex; + parentNode.replaceChild(list, node); + + // assuming we found some parent roles, update those parents with their children + for (var i = 0; i < subRoles.length; i++) { + var item = subRoles[subRoles[i]]; + var sortedList = item.sort(function (a,b) { return a < b ? -1 : a > b ? 1 : 0; }); + var output = '\n'; + // put it somewhere + var subRolesContainer = document.querySelector('#' + subRoles[i]); + if (subRolesContainer) { + var subRolesListContainer = subRolesContainer.querySelector('.role-children'); + if (subRolesListContainer) { + subRolesListContainer.innerHTML = output; + } + } + } + + } + + updateReferences(document); + + // prune out unused rows throughout the document + + $.each(document.querySelectorAll('.role-abstract, .role-parent, .role-base, .role-related, .role-scope, .role-mustcontain, .role-required-properties, .role-properties, .role-namefrom, .role-namerequired, .role-namerequired-inherited, .role-childpresentational, .role-presentational-inherited, .state-related, .property-related,.role-inherited, .role-children, .property-descendants, .state-descendants, .implicit-values'), function (i, item) { + var content = $(item).text(); + if (content.length === 1 || content.length === 0) { + // there is no item - remove the row + item.parentNode.remove(); + } + else if (content === 'Placeholder' && + !skipIndex && + (item.className === 'role-inherited' || + item.className === 'role-children' || + item.className === 'property-descendants' || + item.className === 'state-descendants')) { + item.parentNode.remove(); + } + }); + } + }); }); diff --git a/common/script/mapping-tables.js b/common/script/mapping-tables.js index 495c7d9b79..c31c57a310 100644 --- a/common/script/mapping-tables.js +++ b/common/script/mapping-tables.js @@ -1,265 +1,272 @@ -//check for require() and respec context -if (typeof require !== "undefined") { - /* globals $, require */ - require(["core/pubsubhub"], function(respecEvents) { - mapTables(respecEvents); - }); -} else { - $(document).ready(function() { - mapTables(false); - }); +// check for require() and respec context +if (typeof require !== 'undefined') { + /* globals $, require */ + require([ 'core/pubsubhub' ], function (respecEvents) { + mapTables(respecEvents); + }); } +else { + $(document).ready(function () { + mapTables(false); + }); +} + +function mapTables (respecEvents) { -function mapTables(respecEvents) { + 'use strict'; - "use strict"; + var mappingTableInfos = []; - var mappingTableInfos = []; + function viewAsSingleTable (mappingTableInfo) { + mappingTableInfo.detailsContainer.hide(); + // add @id to ids array and remove @id from summary + $('summary', mappingTableInfo.detailsContainer).each(function () { + $(this).removeAttr('id'); + }); + mappingTableInfo.tableContainer.show(); + // add relevant @id to tr + $('tbody tr',mappingTableInfo.tableContainer).each(function () { + $(this).attr('id', mappingTableInfo.ids[$(this).index()]); + }); + } - function viewAsSingleTable (mappingTableInfo) { - mappingTableInfo.detailsContainer.hide(); - //add @id to ids array and remove @id from summary - $('summary', mappingTableInfo.detailsContainer).each(function() { - $(this).removeAttr('id'); - }); - mappingTableInfo.tableContainer.show(); - //add relevant @id to tr - $('tbody tr',mappingTableInfo.tableContainer).each(function() { - $(this).attr('id', mappingTableInfo.ids[$(this).index()]); - }); - } + function viewAsDetails (mappingTableInfo) { + mappingTableInfo.tableContainer.hide(); + // add tr @id to ids array and remove @id from tr + $('tbody tr', mappingTableInfo.tableContainer).each(function () { + $(this).removeAttr('id'); + }); + mappingTableInfo.detailsContainer.show(); + // add relevant @id to summary + $('summary', mappingTableInfo.detailsContainer).each(function () { + $(this).attr('id', mappingTableInfo.ids[$('details', mappingTableInfo.detailsContainer).index($(this).parent())]); + }); + } - function viewAsDetails (mappingTableInfo) { - mappingTableInfo.tableContainer.hide(); - //add tr @id to ids array and remove @id from tr - $('tbody tr', mappingTableInfo.tableContainer).each(function() { - $(this).removeAttr('id'); - }); - mappingTableInfo.detailsContainer.show(); - //add relevant @id to summary - $('summary', mappingTableInfo.detailsContainer).each(function() { - $(this).attr('id', mappingTableInfo.ids[$('details', mappingTableInfo.detailsContainer).index($(this).parent())]); - }); - } + function mappingTables () { + $('.table-container').each(function () { + // object to store information about a mapping table. + var tableInfo = {}; + mappingTableInfos.push(tableInfo); + // store a reference to the container and hide it + tableInfo.tableContainer = $(this).hide(); + // store a reference to the table + tableInfo.table = $('table', tableInfo.tableContainer); + // create a container div to hold all the details element and insert after table + tableInfo.detailsContainer = $('
    '); + tableInfo.tableContainer.after(tableInfo.detailsContainer); + // array to store @id attributes for rows and summaries. + tableInfo.ids = []; - function mappingTables() { - $('.table-container').each(function() { - // object to store information about a mapping table. - var tableInfo = {}; - mappingTableInfos.push (tableInfo); - //store a reference to the container and hide it - tableInfo.tableContainer = $(this).hide(); - //store a reference to the table - tableInfo.table = $('table', tableInfo.tableContainer); - //create a container div to hold all the details element and insert after table - tableInfo.detailsContainer = $('
    '); - tableInfo.tableContainer.after(tableInfo.detailsContainer); - // array to store @id attributes for rows and summaries. - tableInfo.ids = []; + // add switch to view as single table or details/summary + var $viewSwitch = $('').on('click', function () { + // array to store summary/tr @ids + // if current view is details/summary + if (tableInfo.detailsContainer.is(':visible')) { + viewAsSingleTable(tableInfo); + // toggle the $viewSwitch label from view-as-single-table to view-by-X + $(this).text(mappingTableLabels.viewByLabels[tableInfo.table.attr('id')]); + } + else { + viewAsDetails(tableInfo); + // toggle the $viewSwitch label from view-by-X to view-as-single-table. + $(this).text(mappingTableLabels.viewByTable); + } + }); + tableInfo.tableContainer.before($viewSwitch); + // store the table's column headers in array colHeaders + var colHeaders = []; + $('thead th', tableInfo.table).each(function () { + var colHead = $(this).html(); + colHeaders.push(colHead); + }); + // remove first column header from array + colHeaders.shift(); + // for each row in the table, create details/summary.. + $('tbody tr', tableInfo.table).each(function () { + // store a reference to the row + var $row = $(this), + // store a reference to the row header for use in details' summary and table caption + $caption = $('th', $row).html(), + $summary = $caption.replace(/]+>|<\/a>/g,''); + // get the tr's @id + var id = $row.attr('id'); + // store the row's @id + tableInfo.ids.push(id); + // remove the tr's @id since same id will be used in the relevant summary element + $row.removeAttr('id'); + // store the row's cells in array rowCells + var rowCells = []; + // add row cells to array rowCells for use in the details' table + $('td', $row).each(function () { + rowCells.push($(this).html()); + }); + // clone colHeaders array for use in details table row headers + var rowHeaders = colHeaders.slice(0); + // if attributes mapping table... + if (tableInfo.table.hasClass('attributes')) { + // remove second column header from array + rowHeaders.shift(); + // remove and store "HTML elements" cell from rowCells array for use in details' summary and table caption + var relevantElsCaption = rowCells.shift(), + relevantElsSummary = relevantElsCaption.replace(/]+>|<\/a>/g,''); + } + // create content for each
    element; add row header's content to summary + var details = '
    ' + $summary; + // if attributes mapping table, append relevant elements to summary + if (tableInfo.table.hasClass('attributes')) { + details += ' [' + relevantElsSummary + ']'; + } + details += ''; + // add table rows using appropriate header from detailsRowHead array and relevant value from rowCells array + for (var i = 0, len = rowCells.length; i < len; i++) { + details += ''; + } + details += '
    ' + $caption; + if (tableInfo.table.hasClass('attributes')) { + details += ' [' + relevantElsCaption + ']'; + } + details += '
    ' + rowHeaders[i] + '' + rowCells[i] + '
    '; + // append the
    element to the detailsContainer div + tableInfo.detailsContainer.append(details); + }); + // add 'expand/collapse all' functionality + var $expandAllButton = $(''); + var $collapseAllButton = $(''); + tableInfo.detailsContainer.prepend($expandAllButton, $collapseAllButton); + var expandCollapseDetails = function ($detCont, action) { + $detCont.find('details').each(function () { + var $details = $(this), + $detailsSummary = $('summary', $details), + $detailsNotSummary = $details.children(':not(summary)'); + if (action == 'collapse') { + $details.removeClass('open').prop('open', false); + $detailsSummary.attr('aria-expanded', false); + $detailsNotSummary.hide(); + } + else { + $details.addClass('open').prop('open', true); + $detailsSummary.attr('aria-expanded', true); + $detailsNotSummary.show(); + } + }); + }; + $expandAllButton.on('click', function () { + expandCollapseDetails(tableInfo.detailsContainer, 'expand'); + $(this).attr('disabled', 'disabled'); + tableInfo.detailsContainer.find('button.collapse').removeAttr('disabled'); + }); + $collapseAllButton.on('click', function () { + expandCollapseDetails(tableInfo.detailsContainer, 'collapse'); + $(this).attr('disabled', 'disabled'); + tableInfo.detailsContainer.find('button.expand').removeAttr('disabled'); + }); + // add collapsible table columns functionality + var $showHideCols = $('
    ' + mappingTableLabels.showHideCols + '
    '); + for (var i = 0, len = colHeaders.length; i < len; i++) { + var toggleLabel = colHeaders[i].replace(/
    |<\/a>/g,'').replace(/\[Note [0-9]+\]<\/sup>/g, ''); + var $showHideColButton = $('').on('click', function () { + var index = $(this).index() + 1; + if ($(this).attr('class') == 'hide-col') { + $('tr>th:nth-child(' + index + ')', tableInfo.table).hide(); + $('tr>td:nth-child(' + index + ')', tableInfo.table).hide(); + $(this).attr({'class': 'show-col', 'aria-pressed': 'true', 'title': mappingTableLabels.showToolTipText}); + $('span', $(this)).text(mappingTableLabels.showActionText); + } + else { + $('tr>th:nth-child(' + index + ')', tableInfo.table).show(); + $('tr>td:nth-child(' + index + ')', tableInfo.table).show(); + $(this).attr({'class': 'hide-col', 'aria-pressed': 'false', 'title': mappingTableLabels.hideToolTipText}); + $('span', $(this)).text(mappingTableLabels.hideActionText); + } + }); + $('span:not(.action)', $showHideColButton).remove(); + $showHideCols.append($showHideColButton); + } + tableInfo.tableContainer.prepend($showHideCols); + }); + // call the jquery-details plugin + var nativeDetailsSupport = $.fn.details.support; + if (!nativeDetailsSupport) { + $('html').addClass('no-details'); + } + $('details').details(); - //add switch to view as single table or details/summary - var $viewSwitch = $('').on('click', function() { - //array to store summary/tr @ids - //if current view is details/summary - if (tableInfo.detailsContainer.is(':visible')) { - viewAsSingleTable (tableInfo); - // toggle the $viewSwitch label from view-as-single-table to view-by-X - $(this).text(mappingTableLabels.viewByLabels[tableInfo.table.attr('id')]); - } else { - viewAsDetails (tableInfo); - // toggle the $viewSwitch label from view-by-X to view-as-single-table. - $(this).text(mappingTableLabels.viewByTable); - } - }); - tableInfo.tableContainer.before($viewSwitch); - //store the table's column headers in array colHeaders - var colHeaders = []; - $('thead th', tableInfo.table).each(function() { - var colHead = $(this).html(); - colHeaders.push(colHead); - }); - //remove first column header from array - colHeaders.shift(); - //for each row in the table, create details/summary.. - $('tbody tr', tableInfo.table).each(function() { - //store a reference to the row - var $row = $(this), - //store a reference to the row header for use in details' summary and table caption - $caption = $('th', $row).html(), - $summary = $caption.replace(/]+>|<\/a>/g,''); - //get the tr's @id - var id = $row.attr('id'); - //store the row's @id - tableInfo.ids.push(id); - //remove the tr's @id since same id will be used in the relevant summary element - $row.removeAttr('id'); - //store the row's cells in array rowCells - var rowCells = []; - //add row cells to array rowCells for use in the details' table - $('td', $row).each(function() { - rowCells.push($(this).html()); - }); - //clone colHeaders array for use in details table row headers - var rowHeaders = colHeaders.slice(0); - //if attributes mapping table... - if (tableInfo.table.hasClass('attributes')) { - //remove second column header from array - rowHeaders.shift(); - //remove and store "HTML elements" cell from rowCells array for use in details' summary and table caption - var relevantElsCaption = rowCells.shift(), - relevantElsSummary = relevantElsCaption.replace(/]+>|<\/a>/g,''); - } - //create content for each
    element; add row header's content to summary - var details = '
    ' + $summary; - //if attributes mapping table, append relevant elements to summary - if (tableInfo.table.hasClass('attributes')) { - details += ' [' + relevantElsSummary + ']'; - } - details += ''; - //add table rows using appropriate header from detailsRowHead array and relevant value from rowCells array - for(var i=0, len=rowCells.length; i < len; i++) { - details += ''; - } - details += '
    ' + $caption; - if (tableInfo.table.hasClass('attributes')) { - details += ' [' + relevantElsCaption + ']'; - } - details += '
    ' + rowHeaders[i] + '' + rowCells[i] + '
    '; - //append the
    element to the detailsContainer div - tableInfo.detailsContainer.append(details); - }); - //add 'expand/collapse all' functionality - var $expandAllButton = $(''); - var $collapseAllButton = $(''); - tableInfo.detailsContainer.prepend($expandAllButton, $collapseAllButton); - var expandCollapseDetails = function($detCont, action) { - $detCont.find('details').each(function() { - var $details = $(this), - $detailsSummary = $('summary', $details), - $detailsNotSummary = $details.children(':not(summary)'); - if (action == 'collapse') { - $details.removeClass('open').prop('open', false); - $detailsSummary.attr('aria-expanded', false); - $detailsNotSummary.hide(); - } else { - $details.addClass('open').prop('open', true); - $detailsSummary.attr('aria-expanded', true); - $detailsNotSummary.show(); - } - }); - }; - $expandAllButton.on('click', function() { - expandCollapseDetails(tableInfo.detailsContainer, 'expand'); - $(this).attr('disabled', 'disabled'); - tableInfo.detailsContainer.find('button.collapse').removeAttr('disabled'); - }); - $collapseAllButton.on('click', function() { - expandCollapseDetails(tableInfo.detailsContainer, 'collapse'); - $(this).attr('disabled', 'disabled'); - tableInfo.detailsContainer.find('button.expand').removeAttr('disabled'); - }); - //add collapsible table columns functionality - var $showHideCols = $('
    ' + mappingTableLabels.showHideCols + '
    '); - for(var i=0, len=colHeaders.length; i < len; i++) { - var toggleLabel = colHeaders[i].replace(/
    |<\/a>/g,'').replace(/\[Note [0-9]+\]<\/sup>/g, ''); - var $showHideColButton = $('').on('click', function() { - var index = $(this).index() + 1; - if ($(this).attr('class') == 'hide-col') { - $('tr>th:nth-child('+index+')', tableInfo.table).hide(); - $('tr>td:nth-child('+index+')', tableInfo.table).hide(); - $(this).attr({'class': 'show-col', 'aria-pressed': 'true', 'title': mappingTableLabels.showToolTipText}); - $('span', $(this)).text(mappingTableLabels.showActionText); - } else { - $('tr>th:nth-child('+index+')', tableInfo.table).show(); - $('tr>td:nth-child('+index+')', tableInfo.table).show(); - $(this).attr({'class': 'hide-col', 'aria-pressed': 'false', 'title': mappingTableLabels.hideToolTipText}); - $('span', $(this)).text(mappingTableLabels.hideActionText); - } - }); - $('span:not(.action)', $showHideColButton).remove(); - $showHideCols.append($showHideColButton); - } - tableInfo.tableContainer.prepend($showHideCols); - }); - //call the jquery-details plugin - var nativeDetailsSupport = $.fn.details.support; - if (!nativeDetailsSupport) { - $('html').addClass('no-details'); - } - $('details').details(); - - //Use jquery-details plugin event handlers on details open/close to set state of expand/collapse all buttons - $('details').on({ - 'open.details': function() { - setExpandCollapseButtons($(this).parent()); - }, - 'close.details': function() { - setExpandCollapseButtons($(this).parent()); - } - }); - var setExpandCollapseButtons = function($detCont) { - var totalDetails = $detCont.find('details').length; - var detailsOpen = $detCont.find('details.open, details[open]').length; - //if, after the details is opened or closed... - if (detailsOpen == totalDetails) {//all details are open, enable collapse all button and disable expand all button - $detCont.find('button.collapse').removeAttr('disabled'); - $detCont.find('button.expand').attr('disabled', 'disabled'); - } else if (totalDetails > detailsOpen && detailsOpen > 0) {//some but not all details are open, enable collapse all button - $detCont.find('button.collapse').removeAttr('disabled'); - $detCont.find('button.expand').removeAttr('disabled'); - } else {//no details are open, disable collapse all button and enable expand all button - $detCont.find('button.collapse').attr('disabled', 'disabled'); - $detCont.find('button.expand').removeAttr('disabled'); - } - } - //if page URL links to frag id, reset location to frag id once details/summary view is set - if(window.location.hash) { - var hash = window.location.hash; - window.location = hash; - //if frag id is for a summary element, expand the parent details element - if ($(hash).prop('tagName') == "SUMMARY") { - expandReferredDetails(hash); - } - } + // Use jquery-details plugin event handlers on details open/close to set state of expand/collapse all buttons + $('details').on({ + 'open.details': function () { + setExpandCollapseButtons($(this).parent()); + }, + 'close.details': function () { + setExpandCollapseButtons($(this).parent()); + } + }); + var setExpandCollapseButtons = function ($detCont) { + var totalDetails = $detCont.find('details').length; + var detailsOpen = $detCont.find('details.open, details[open]').length; + // if, after the details is opened or closed... + if (detailsOpen == totalDetails) {// all details are open, enable collapse all button and disable expand all button + $detCont.find('button.collapse').removeAttr('disabled'); + $detCont.find('button.expand').attr('disabled', 'disabled'); + } + else if (totalDetails > detailsOpen && detailsOpen > 0) {// some but not all details are open, enable collapse all button + $detCont.find('button.collapse').removeAttr('disabled'); + $detCont.find('button.expand').removeAttr('disabled'); + } + else {// no details are open, disable collapse all button and enable expand all button + $detCont.find('button.collapse').attr('disabled', 'disabled'); + $detCont.find('button.expand').removeAttr('disabled'); + } + }; + // if page URL links to frag id, reset location to frag id once details/summary view is set + if (window.location.hash) { + var hash = window.location.hash; + window.location = hash; + // if frag id is for a summary element, expand the parent details element + if ($(hash).prop('tagName') == 'SUMMARY') { + expandReferredDetails(hash); + } + } - // Add a hook to expand referred details element when whose @href is fragid of a is clicked. - $('a[href^="#"]').each(function() { - var fragId = $(this).attr('href'); - if ($(fragId).prop('tagName') == "SUMMARY") { - $(this).on('click', function() { - expandReferredDetails(fragId); - }); - } - }); + // Add a hook to expand referred details element when whose @href is fragid of a is clicked. + $('a[href^="#"]').each(function () { + var fragId = $(this).attr('href'); + if ($(fragId).prop('tagName') == 'SUMMARY') { + $(this).on('click', function () { + expandReferredDetails(fragId); + }); + } + }); - }; + }; - function expandReferredDetails(summaryFragId) { - //if details element is not open, activate click on summary - if (!$(summaryFragId).parent().prop('open')) { - $(summaryFragId).click(); - } - } + function expandReferredDetails (summaryFragId) { + // if details element is not open, activate click on summary + if (!$(summaryFragId).parent().prop('open')) { + $(summaryFragId).click(); + } + } - if (respecEvents) { - // Fix the scroll-to-fragID: - // - if running with ReSpec, do not invoke the mapping tables script until - // ReSpec executes its own scroll-to-fragID. - // - if running on a published document (no ReSpec), invoke the mapping tables - // script on document ready. - respecEvents.sub ("start", function (details) { - if (details === "core/location-hash") { - mappingTables(); - } - }); - // Subscribe to ReSpec "save" message to set the mapping tables to - // view-as-single-table state. - respecEvents.sub ("save", function (details) { - mappingTableInfos.forEach (function (item) { - viewAsSingleTable (item); - }); - }); - } else { - mappingTables(); - } + if (respecEvents) { + // Fix the scroll-to-fragID: + // - if running with ReSpec, do not invoke the mapping tables script until + // ReSpec executes its own scroll-to-fragID. + // - if running on a published document (no ReSpec), invoke the mapping tables + // script on document ready. + respecEvents.sub('start', function (details) { + if (details === 'core/location-hash') { + mappingTables(); + } + }); + // Subscribe to ReSpec "save" message to set the mapping tables to + // view-as-single-table state. + respecEvents.sub('save', function (details) { + mappingTableInfos.forEach(function (item) { + viewAsSingleTable(item); + }); + }); + } + else { + mappingTables(); + } } diff --git a/common/script/resolveReferences.js b/common/script/resolveReferences.js index 75c1aa6354..3395886436 100644 --- a/common/script/resolveReferences.js +++ b/common/script/resolveReferences.js @@ -1,10 +1,10 @@ /* globals respecConfig, $, localRoleInfo, roleInfo, require */ /* exported linkCrossReferences, restrictReferences, fixIncludes */ -function linkCrossReferences() { - "use strict"; +function linkCrossReferences () { + 'use strict'; - var specBaseURL = ( respecConfig.ariaSpecURLs ? + var specBaseURL = (respecConfig.ariaSpecURLs ? respecConfig.ariaSpecURLs[respecConfig.specStatus] : null ); @@ -20,203 +20,209 @@ function linkCrossReferences() { respecConfig.htmlMappingURLs[respecConfig.specStatus] : null ); - var dpubModURL = ( respecConfig.dpubModURLs ? + var dpubModURL = (respecConfig.dpubModURLs ? respecConfig.dpubModURLs[respecConfig.specStatus] : null ); - var graphicsModURL = ( respecConfig.graphicsModURLs ? + var graphicsModURL = (respecConfig.graphicsModURLs ? respecConfig.graphicsModURLs[respecConfig.specStatus] : null ); - var graphicsMappingModURL = ( respecConfig.graphicsMappingModURLs ? + var graphicsMappingModURL = (respecConfig.graphicsMappingModURLs ? respecConfig.graphicsMappingModURLs[respecConfig.specStatus] : null ); - var practicesURL = ( respecConfig.practicesURLs ? + var practicesURL = (respecConfig.practicesURLs ? respecConfig.practicesURLs[respecConfig.specStatus] : null ); function setHrefs (selString, baseUrl) { - $ (selString).each ( + $(selString).each( function (idx, el) { - var href = $ (el).attr ('href'); - $ (el).attr ('href', baseUrl + href); - }); + var href = $(el).attr('href'); + $(el).attr('href', baseUrl + href); + }); } // First the links to the definitions of roles, states, and properties. if (!!specBaseURL) { - setHrefs ('a.role-reference, a.property-reference, a.state-reference, a.specref', specBaseURL); + setHrefs('a.role-reference, a.property-reference, a.state-reference, a.specref', specBaseURL); } else { - console.log ("linkCrossReferences(): specBaseURL is not defined."); + console.log('linkCrossReferences(): specBaseURL is not defined.'); } // Second, for links to role, state, and property mappings in the core mapping // doc. if (!!coreMappingURL) { - setHrefs ('a.core-mapping', coreMappingURL); + setHrefs('a.core-mapping', coreMappingURL); } else { - console.log ("linkCrossReferences(): Note -- coreMappingURL is not defined."); + console.log('linkCrossReferences(): Note -- coreMappingURL is not defined.'); } // Third, for links into the accname document. if (!!accNameURL) { - setHrefs ('a.accname', accNameURL); + setHrefs('a.accname', accNameURL); } else { - console.log ("linkCrossReferences(): Note -- accNameURL is not defined."); + console.log('linkCrossReferences(): Note -- accNameURL is not defined.'); } // Fourth, for links to role, state, and property mappings in the html mapping // doc. if (!!htmlMappingURL) { - setHrefs ('a.html-mapping', htmlMappingURL); + setHrefs('a.html-mapping', htmlMappingURL); } else { - console.log ("linkCrossReferences(): Note -- htmlMappingURL is not defined."); + console.log('linkCrossReferences(): Note -- htmlMappingURL is not defined.'); } // Links to the DPub WAI-ARIA Module. if (!!dpubModURL) { - setHrefs ('a.dpub-role-reference, a.dpub-property-reference, a.dpub-state-reference, a.dpub', dpubModURL); + setHrefs('a.dpub-role-reference, a.dpub-property-reference, a.dpub-state-reference, a.dpub', dpubModURL); } else { - console.log ("linkCrossReferences(): dpubModURL is not defined."); + console.log('linkCrossReferences(): dpubModURL is not defined.'); } -// Links to the Graphics WAI-ARIA Module. + // Links to the Graphics WAI-ARIA Module. if (!!graphicsModURL) { - setHrefs ('a.graphics-role-reference, a.graphics-property-reference, a.graphics-state-reference, a.graphics', graphicsModURL); + setHrefs('a.graphics-role-reference, a.graphics-property-reference, a.graphics-state-reference, a.graphics', graphicsModURL); } else { - console.log ("linkCrossReferences(): graphicsModURL is not defined."); + console.log('linkCrossReferences(): graphicsModURL is not defined.'); } -// Links to the Graphics Mapping WAI-ARIA Module. + // Links to the Graphics Mapping WAI-ARIA Module. if (!!graphicsMappingModURL) { - setHrefs ('a.graphics-role-mapping, a.graphics-property-mapping, a.graphics-state-mapping, a.graphics-mapping', graphicsMappingModURL); + setHrefs('a.graphics-role-mapping, a.graphics-property-mapping, a.graphics-state-mapping, a.graphics-mapping', graphicsMappingModURL); } else { - console.log ("linkCrossReferences(): graphicsMappingModURL is not defined."); + console.log('linkCrossReferences(): graphicsMappingModURL is not defined.'); } -// Links to the Authoring Practices. + // Links to the Authoring Practices. if (!!practicesURL) { - setHrefs ('a.practices', practicesURL); + setHrefs('a.practices', practicesURL); } else { - console.log ("linkCrossReferences(): practicesURL is not defined."); + console.log('linkCrossReferences(): practicesURL is not defined.'); } - } -function updateReferences(base) { - // update references to properties - // - // New logic: - // 1. for each item, find it's nearest 'section' ancestor (or nearest div - // with a class of role, property, or state) - // 2. if we have not already seen this item in this section, it is a link using 'a' - // 3. otherwise, it is just a styled reference to the item using 'code' - - "use strict"; - - var baseURL = respecConfig.ariaSpecURLs[respecConfig.specStatus]; - - var sectionMap = {} ; - - $.each(base.querySelectorAll("pref, sref, rref"), function(i, item) { - var $item = $(item) ; - - // what are we referencing? - var content = $item.text(); - var usedTitle = false; - var ref = $item.attr("title"); - if (!ref) { - ref = $item.attr("data-lt"); - if (!ref) { - ref = content; - } else { - usedTitle = true; - } - } else { - usedTitle = true; - } - - // what sort of reference are we? - var theClass = ($item.is("pref") ? "property-reference" : ($item.is("sref") ? "state-reference" : "role-reference")); - - // property and state references are assumed to be in the parent document - // a role reference might be local or might be elsewhere - var URL = $item.is("pref, sref") ? baseURL+"#" : "#"; - - // assume we are making a link - var theElement = "a"; - - // pSec is the nearest parent section element - var $pSec = $item.parents("section,div.role,div.state,div.property").first(); - var pID = $pSec.attr("id"); - if (pID) { - if (sectionMap[pID]) { - if (sectionMap[pID][ref]) { - // only change the element if we not in a table or a dl - if ($item.parents("table,dl").length === 0) { - if (usedTitle) { - theElement = "span"; - } else { - theElement = "code"; - } - } - } else { - sectionMap[pID][ref] = 1; - } - } else { - sectionMap[pID] = {} ; - sectionMap[pID][ref] = 1; +function updateReferences (base) { + // update references to properties + // + // New logic: + // 1. for each item, find it's nearest 'section' ancestor (or nearest div + // with a class of role, property, or state) + // 2. if we have not already seen this item in this section, it is a link using 'a' + // 3. otherwise, it is just a styled reference to the item using 'code' + + 'use strict'; + + var baseURL = respecConfig.ariaSpecURLs[respecConfig.specStatus]; + + var sectionMap = {} ; + + $.each(base.querySelectorAll('pref, sref, rref'), function (i, item) { + var $item = $(item) ; + + // what are we referencing? + var content = $item.text(); + var usedTitle = false; + var ref = $item.attr('title'); + if (!ref) { + ref = $item.attr('data-lt'); + if (!ref) { + ref = content; + } + else { + usedTitle = true; + } + } + else { + usedTitle = true; + } + + // what sort of reference are we? + var theClass = ($item.is('pref') ? 'property-reference' : ($item.is('sref') ? 'state-reference' : 'role-reference')); + + // property and state references are assumed to be in the parent document + // a role reference might be local or might be elsewhere + var URL = $item.is('pref, sref') ? baseURL + '#' : '#'; + + // assume we are making a link + var theElement = 'a'; + + // pSec is the nearest parent section element + var $pSec = $item.parents('section,div.role,div.state,div.property').first(); + var pID = $pSec.attr('id'); + if (pID) { + if (sectionMap[pID]) { + if (sectionMap[pID][ref]) { + // only change the element if we not in a table or a dl + if ($item.parents('table,dl').length === 0) { + if (usedTitle) { + theElement = 'span'; } - } - - if (theElement === "a" && $item.is('rref') ) { - if (typeof localRoleInfo !== 'undefined' && localRoleInfo[ref]) { - ref = localRoleInfo[ref].fragID; - } else if (baseURL && roleInfo[ref]) { - ref = roleInfo[ref].fragID; - URL = baseURL + "#"; - } else { - // no roleInfo structure. Make an assumption - URL = baseURL + "#"; + else { + theElement = 'code'; } + } } - var sp = document.createElement(theElement); - if (theElement === "a") { - sp.href = URL + ref; - sp.className = theClass; - content = "" + content + ""; + else { + sectionMap[pID][ref] = 1; } - sp.innerHTML=content; - $item.replaceWith(sp); - }); + } + else { + sectionMap[pID] = {} ; + sectionMap[pID][ref] = 1; + } + } + + if (theElement === 'a' && $item.is('rref')) { + if (typeof localRoleInfo !== 'undefined' && localRoleInfo[ref]) { + ref = localRoleInfo[ref].fragID; + } + else if (baseURL && roleInfo[ref]) { + ref = roleInfo[ref].fragID; + URL = baseURL + '#'; + } + else { + // no roleInfo structure. Make an assumption + URL = baseURL + '#'; + } + } + var sp = document.createElement(theElement); + if (theElement === 'a') { + sp.href = URL + ref; + sp.className = theClass; + content = '' + content + ''; + } + sp.innerHTML = content; + $item.replaceWith(sp); + }); } // We should be able to remove terms that are not actually // referenced from the common definitions var termNames = [] ; -function restrictReferences(utils, content) { - "use strict"; - var base = document.createElement("div"); - base.innerHTML = content; - updateReferences(base); - - // strategy: Traverse the content finding all of the terms defined - $.each(base.querySelectorAll("dfn"), function(i, item) { - var $t = $(item) ; - var titles = $t.getDfnTitles(); - var n = $t.makeID("dfn", titles[0]); - if (n) { - termNames[n] = $t.parent() ; - } - }); - - return (base.innerHTML); +function restrictReferences (utils, content) { + 'use strict'; + var base = document.createElement('div'); + base.innerHTML = content; + updateReferences(base); + + // strategy: Traverse the content finding all of the terms defined + $.each(base.querySelectorAll('dfn'), function (i, item) { + var $t = $(item) ; + var titles = $t.getDfnTitles(); + var n = $t.makeID('dfn', titles[0]); + if (n) { + termNames[n] = $t.parent() ; + } + }); + + return (base.innerHTML); } // add a handler to come in after all the definitions are resolved @@ -226,61 +232,61 @@ function restrictReferences(utils, content) { // also within a 'dl' element of class 'termlist', then // consider it an internal reference and ignore it. -require(["core/pubsubhub"], function(respecEvents) { - "use strict"; - respecEvents.sub('end', function(message) { - if (message === 'core/link-to-dfn') { - // all definitions are linked - $("a.internalDFN").each(function () { - var $item = $(this) ; - var t = $item.attr('href'); - if ( $item.closest('dl.termlist').length ) { - if ( $(t).closest('dl.termlist').length ) { - // do nothing - return; - } - } - var r = t.replace(/^#/,"") ; - if (termNames[r]) { - delete termNames[r] ; - } - }); - // delete any terms that were not referenced. - Object.keys(termNames).forEach(function(term) { - var $p = $("#"+term); - if ($p) { - // Delete altered dfn elements and refs - $p.parent().next().remove(); - $p.parent().remove(); - - $p.getDfnTitles().forEach(function( item ) { - if (respecConfig.definitionMap[item]) { - delete respecConfig.definitionMap[item]; - } - }); - } - }); +require([ 'core/pubsubhub' ], function (respecEvents) { + 'use strict'; + respecEvents.sub('end', function (message) { + if (message === 'core/link-to-dfn') { + // all definitions are linked + $('a.internalDFN').each(function () { + var $item = $(this) ; + var t = $item.attr('href'); + if ($item.closest('dl.termlist').length) { + if ($(t).closest('dl.termlist').length) { + // do nothing + return; + } + } + var r = t.replace(/^#/,'') ; + if (termNames[r]) { + delete termNames[r] ; } - }); + }); + // delete any terms that were not referenced. + Object.keys(termNames).forEach(function (term) { + var $p = $('#' + term); + if ($p) { + // Delete altered dfn elements and refs + $p.parent().next().remove(); + $p.parent().remove(); + + $p.getDfnTitles().forEach(function (item) { + if (respecConfig.definitionMap[item]) { + delete respecConfig.definitionMap[item]; + } + }); + } + }); + } + }); }); // included files are brought in after proProc. Create a DOM tree // of content then call the updateReferences method above on it. Return // the transformed content -function fixIncludes(utils, content) { - "use strict"; - var base = document.createElement("div"); - base.innerHTML = content; - updateReferences(base); - return (base.innerHTML); +function fixIncludes (utils, content) { + 'use strict'; + var base = document.createElement('div'); + base.innerHTML = content; + updateReferences(base); + return (base.innerHTML); } // Fix the scroll-to-fragID problem: -require(["core/pubsubhub"], function (respecEvents) { - "use strict"; - respecEvents.sub("end-all", function () { - if(window.location.hash) { - window.location = window.location.hash; - } - }); +require([ 'core/pubsubhub' ], function (respecEvents) { + 'use strict'; + respecEvents.sub('end-all', function () { + if (window.location.hash) { + window.location = window.location.hash; + } + }); }); diff --git a/common/script/roleInfo.js b/common/script/roleInfo.js index 9717562df2..36962866b9 100644 --- a/common/script/roleInfo.js +++ b/common/script/roleInfo.js @@ -1,5649 +1,5649 @@ var roleInfo = { - "alert": { - "name": "alert", - "fragID": "alert", - "parentRoles": [ - "section" - ], - "localprops": [], - "allprops": [ - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "alertdialog": { - "name": "alertdialog", - "fragID": "alertdialog", - "parentRoles": [ - "alert", - "dialog" - ], - "localprops": [] - }, - "application": { - "name": "application", - "fragID": "application", - "parentRoles": [ - "structure" - ], - "localprops": [ - { - "is": "property", - "name": "aria-activedescendant", - "required": false - } - ] - }, - "article": { - "name": "article", - "fragID": "article", - "parentRoles": [ - "document" - ], - "localprops": [ - { - "is": "property", - "name": "aria-posinset", - "required": false - }, - { - "is": "property", - "name": "aria-setsize", - "required": false - } - ] - }, - "banner": { - "name": "banner", - "fragID": "banner", - "parentRoles": [ - "landmark" - ], - "localprops": [] - }, - "button": { - "name": "button", - "fragID": "button", - "parentRoles": [ - "command" - ], - "localprops": [ - { - "is": "property", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-pressed", - "required": false - } - ] - }, - "cell": { - "name": "cell", - "fragID": "cell", - "parentRoles": [ - "section" - ], - "localprops": [ - { - "is": "property", - "name": "aria-colindex", - "required": false - }, - { - "is": "property", - "name": "aria-colspan", - "required": false - }, - { - "is": "property", - "name": "aria-rowindex", - "required": false - }, - { - "is": "property", - "name": "aria-rowspan", - "required": false - } - ], - "allprops": [ - { - "is": "property", - "name": "aria-colindex", - "required": false - }, - { - "is": "property", - "name": "aria-colspan", - "required": false - }, - { - "is": "property", - "name": "aria-rowindex", - "required": false - }, - { - "is": "property", - "name": "aria-rowspan", - "required": false - }, - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "checkbox": { - "name": "checkbox", - "fragID": "checkbox", - "parentRoles": [ - "input" - ], - "localprops": [ - { - "is": "state", - "name": "aria-checked", - "required": true - }, - { - "is": "property", - "name": "aria-readonly", - "required": false - } - ], - "allprops": [ - { - "is": "state", - "name": "aria-checked", - "required": true - }, - { - "is": "property", - "name": "aria-readonly", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "columnheader": { - "name": "columnheader", - "fragID": "columnheader", - "parentRoles": [ - "cell", - "gridcell", - "sectionhead" - ], - "localprops": [ - { - "is": "property", - "name": "aria-sort", - "required": false - } - ] - }, - "combobox": { - "name": "combobox", - "fragID": "combobox", - "parentRoles": [ - "select" - ], - "localprops": [ - { - "is": "property", - "name": "aria-controls", - "required": true - }, - { - "is": "state", - "name": "aria-expanded", - "required": true - }, - { - "is": "property", - "name": "aria-autocomplete", - "required": false - }, - { - "is": "property", - "name": "aria-readonly", - "required": false - }, - { - "is": "property", - "name": "aria-required", - "required": false - } - ] - }, - "command": { - "name": "command", - "fragID": "command", - "parentRoles": [ - "widget" - ], - "localprops": [], - "allprops": [ - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "complementary": { - "name": "complementary", - "fragID": "complementary", - "parentRoles": [ - "landmark" - ], - "localprops": [] - }, - "composite": { - "name": "composite", - "fragID": "composite", - "parentRoles": [ - "widget" - ], - "localprops": [ - { - "is": "property", - "name": "aria-activedescendant", - "required": false - } - ], - "allprops": [ - { - "is": "property", - "name": "aria-activedescendant", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "contentinfo": { - "name": "contentinfo", - "fragID": "contentinfo", - "parentRoles": [ - "landmark" - ], - "localprops": [] - }, - "definition": { - "name": "definition", - "fragID": "definition", - "parentRoles": [ - "section" - ], - "localprops": [] - }, - "dialog": { - "name": "dialog", - "fragID": "dialog", - "parentRoles": [ - "window" - ], - "localprops": [], - "allprops": [ - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-modal", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "directory": { - "name": "directory", - "fragID": "directory", - "parentRoles": [ - "list" - ], - "localprops": [] - }, - "document": { - "name": "document", - "fragID": "document", - "parentRoles": [ - "structure" - ], - "localprops": [ - { - "is": "state", - "name": "aria-expanded", - "required": false - } - ], - "allprops": [ - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "feed": { - "name": "feed", - "fragID": "feed", - "parentRoles": [ - "list" - ], - "localprops": [] - }, - "figure": { - "name": "figure", - "fragID": "figure", - "parentRoles": [ - "section" - ], - "localprops": [] - }, - "form": { - "name": "form", - "fragID": "form", - "parentRoles": [ - "landmark" - ], - "localprops": [] - }, - "grid": { - "name": "grid", - "fragID": "grid", - "parentRoles": [ - "composite", - "table" - ], - "localprops": [ - { - "is": "property", - "name": "aria-level", - "required": false - }, - { - "is": "property", - "name": "aria-multiselectable", - "required": false - }, - { - "is": "property", - "name": "aria-readonly", - "required": false - } - ], - "allprops": [ - { - "is": "property", - "name": "aria-level", - "required": false - }, - { - "is": "property", - "name": "aria-multiselectable", - "required": false - }, - { - "is": "property", - "name": "aria-readonly", - "required": false - }, - { - "is": "property", - "name": "aria-activedescendant", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - }, - { - "is": "property", - "name": "aria-colcount", - "required": false - }, - { - "is": "property", - "name": "aria-rowcount", - "required": false - }, - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "gridcell": { - "name": "gridcell", - "fragID": "gridcell", - "parentRoles": [ - "cell", - "widget" - ], - "localprops": [ - { - "is": "property", - "name": "aria-readonly", - "required": false - }, - { - "is": "property", - "name": "aria-required", - "required": false - }, - { - "is": "state", - "name": "aria-selected", - "required": false - } - ], - "allprops": [ - { - "is": "property", - "name": "aria-readonly", - "required": false - }, - { - "is": "property", - "name": "aria-required", - "required": false - }, - { - "is": "state", - "name": "aria-selected", - "required": false - }, - { - "is": "property", - "name": "aria-colindex", - "required": false - }, - { - "is": "property", - "name": "aria-colspan", - "required": false - }, - { - "is": "property", - "name": "aria-rowindex", - "required": false - }, - { - "is": "property", - "name": "aria-rowspan", - "required": false - }, - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "group": { - "name": "group", - "fragID": "group", - "parentRoles": [ - "section" - ], - "localprops": [ - { - "is": "property", - "name": "aria-activedescendant", - "required": false - } - ], - "allprops": [ - { - "is": "property", - "name": "aria-activedescendant", - "required": false - }, - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "heading": { - "name": "heading", - "fragID": "heading", - "parentRoles": [ - "sectionhead" - ], - "localprops": [ - { - "is": "property", - "name": "aria-level", - "required": true - } - ] - }, - "img": { - "name": "img", - "fragID": "img", - "parentRoles": [ - "section" - ], - "localprops": [] - }, - "input": { - "name": "input", - "fragID": "input", - "parentRoles": [ - "widget" - ], - "localprops": [], - "allprops": [ - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "landmark": { - "name": "landmark", - "fragID": "landmark", - "parentRoles": [ - "section" - ], - "localprops": [], - "allprops": [ - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "link": { - "name": "link", - "fragID": "link", - "parentRoles": [ - "command" - ], - "localprops": [ - { - "is": "property", - "name": "aria-expanded", - "required": false - } - ] - }, - "list": { - "name": "list", - "fragID": "list", - "parentRoles": [ - "section" - ], - "localprops": [], - "allprops": [ - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "listbox": { - "name": "listbox", - "fragID": "listbox", - "parentRoles": [ - "select" - ], - "localprops": [ - { - "is": "property", - "name": "aria-multiselectable", - "required": false - }, - { - "is": "property", - "name": "aria-readonly", - "required": false - }, - { - "is": "property", - "name": "aria-required", - "required": false - } - ] - }, - "listitem": { - "name": "listitem", - "fragID": "listitem", - "parentRoles": [ - "section" - ], - "localprops": [ - { - "is": "property", - "name": "aria-level", - "required": false - }, - { - "is": "property", - "name": "aria-posinset", - "required": false - }, - { - "is": "property", - "name": "aria-setsize", - "required": false - } - ], - "allprops": [ - { - "is": "property", - "name": "aria-level", - "required": false - }, - { - "is": "property", - "name": "aria-posinset", - "required": false - }, - { - "is": "property", - "name": "aria-setsize", - "required": false - }, - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "log": { - "name": "log", - "fragID": "log", - "parentRoles": [ - "section" - ], - "localprops": [] - }, - "main": { - "name": "main", - "fragID": "main", - "parentRoles": [ - "landmark" - ], - "localprops": [] - }, - "marquee": { - "name": "marquee", - "fragID": "marquee", - "parentRoles": [ - "section" - ], - "localprops": [] - }, - "math": { - "name": "math", - "fragID": "math", - "parentRoles": [ - "section" - ], - "localprops": [] - }, - "menu": { - "name": "menu", - "fragID": "menu", - "parentRoles": [ - "select" - ], - "localprops": [], - "allprops": [ - { - "is": "property", - "name": "aria-orientation", - "required": false - }, - { - "is": "property", - "name": "aria-activedescendant", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - }, - { - "is": "property", - "name": "aria-activedescendant", - "required": false - }, - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "menubar": { - "name": "menubar", - "fragID": "menubar", - "parentRoles": [ - "menu" - ], - "localprops": [] - }, - "menuitem": { - "name": "menuitem", - "fragID": "menuitem", - "parentRoles": [ - "command" - ], - "localprops": [ - { - "is": "property", - "name": "aria-posinset", - "required": false - }, - { - "is": "property", - "name": "aria-setsize", - "required": false - } - ], - "allprops": [ - { - "is": "property", - "name": "aria-posinset", - "required": false - }, - { - "is": "property", - "name": "aria-setsize", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "menuitemcheckbox": { - "name": "menuitemcheckbox", - "fragID": "menuitemcheckbox", - "parentRoles": [ - "checkbox", - "menuitem" - ], - "localprops": [], - "allprops": [ - { - "is": "state", - "name": "aria-checked", - "required": true - }, - { - "is": "property", - "name": "aria-readonly", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - }, - { - "is": "property", - "name": "aria-posinset", - "required": false - }, - { - "is": "property", - "name": "aria-setsize", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "menuitemradio": { - "name": "menuitemradio", - "fragID": "menuitemradio", - "parentRoles": [ - "menuitemcheckbox", - "radio" - ], - "localprops": [] - }, - "navigation": { - "name": "navigation", - "fragID": "navigation", - "parentRoles": [ - "landmark" - ], - "localprops": [] - }, - "none": { - "name": "none", - "fragID": "none", - "parentRoles": [], - "localprops": [] - }, - "note": { - "name": "note", - "fragID": "note", - "parentRoles": [ - "section" - ], - "localprops": [] - }, - "option": { - "name": "option", - "fragID": "option", - "parentRoles": [ - "input" - ], - "localprops": [ - { - "is": "state", - "name": "aria-selected", - "required": true - }, - { - "is": "property", - "name": "aria-checked", - "required": false - }, - { - "is": "property", - "name": "aria-posinset", - "required": false - }, - { - "is": "property", - "name": "aria-setsize", - "required": false - } - ], - "allprops": [ - { - "is": "state", - "name": "aria-selected", - "required": true - }, - { - "is": "property", - "name": "aria-checked", - "required": false - }, - { - "is": "property", - "name": "aria-posinset", - "required": false - }, - { - "is": "property", - "name": "aria-setsize", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "password": { - "name": "password", - "fragID": "password", - "parentRoles": [ - "input" - ], - "localprops": [ - { - "is": "property", - "name": "aria-placeholder", - "required": false - }, - { - "is": "property", - "name": "aria-readonly", - "required": false - }, - { - "is": "property", - "name": "aria-required", - "required": false - } - ] - }, - "presentation": { - "name": "presentation", - "fragID": "presentation", - "parentRoles": [ - "structure" - ], - "localprops": [] - }, - "progressbar": { - "name": "progressbar", - "fragID": "progressbar", - "parentRoles": [ - "range", - "status" - ], - "localprops": [] - }, - "radio": { - "name": "radio", - "fragID": "radio", - "parentRoles": [ - "input" - ], - "localprops": [ - { - "is": "state", - "name": "aria-checked", - "required": true - }, - { - "is": "property", - "name": "aria-posinset", - "required": false - }, - { - "is": "property", - "name": "aria-setsize", - "required": false - } - ], - "allprops": [ - { - "is": "state", - "name": "aria-checked", - "required": true - }, - { - "is": "property", - "name": "aria-posinset", - "required": false - }, - { - "is": "property", - "name": "aria-setsize", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "radiogroup": { - "name": "radiogroup", - "fragID": "radiogroup", - "parentRoles": [ - "select" - ], - "localprops": [ - { - "is": "property", - "name": "aria-readonly", - "required": false - }, - { - "is": "property", - "name": "aria-required", - "required": false - } - ] - }, - "range": { - "name": "range", - "fragID": "range", - "parentRoles": [ - "widget" - ], - "localprops": [ - { - "is": "property", - "name": "aria-valuemax", - "required": false - }, - { - "is": "property", - "name": "aria-valuemin", - "required": false - }, - { - "is": "property", - "name": "aria-valuenow", - "required": false - }, - { - "is": "property", - "name": "aria-valuetext", - "required": false - } - ], - "allprops": [ - { - "is": "property", - "name": "aria-valuemax", - "required": false - }, - { - "is": "property", - "name": "aria-valuemin", - "required": false - }, - { - "is": "property", - "name": "aria-valuenow", - "required": false - }, - { - "is": "property", - "name": "aria-valuetext", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "region": { - "name": "region", - "fragID": "region", - "parentRoles": [ - "landmark" - ], - "localprops": [] - }, - "roletype": { - "name": "roletype", - "fragID": "roletype", - "parentRoles": [], - "localprops": [ - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ], - "allprops": [ - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "row": { - "name": "row", - "fragID": "row", - "parentRoles": [ - "group", - "widget" - ], - "localprops": [ - { - "is": "property", - "name": "aria-colindex", - "required": false - }, - { - "is": "property", - "name": "aria-level", - "required": false - }, - { - "is": "property", - "name": "aria-rowindex", - "required": false - }, - { - "is": "state", - "name": "aria-selected", - "required": false - } - ] - }, - "rowgroup": { - "name": "rowgroup", - "fragID": "rowgroup", - "parentRoles": [ - "structure" - ], - "localprops": [] - }, - "rowheader": { - "name": "rowheader", - "fragID": "rowheader", - "parentRoles": [ - "cell", - "gridcell", - "sectionhead" - ], - "localprops": [ - { - "is": "property", - "name": "aria-sort", - "required": false - } - ] - }, - "scrollbar": { - "name": "scrollbar", - "fragID": "scrollbar", - "parentRoles": [ - "range" - ], - "localprops": [ - { - "is": "property", - "name": "aria-controls", - "required": true - }, - { - "is": "property", - "name": "aria-orientation", - "required": true - }, - { - "is": "property", - "name": "aria-valuemax", - "required": true - }, - { - "is": "property", - "name": "aria-valuemin", - "required": true - }, - { - "is": "property", - "name": "aria-valuenow", - "required": true - } - ] - }, - "search": { - "name": "search", - "fragID": "search", - "parentRoles": [ - "landmark" - ], - "localprops": [] - }, - "searchbox": { - "name": "searchbox", - "fragID": "searchbox", - "parentRoles": [ - "textbox" - ], - "localprops": [] - }, - "section": { - "name": "section", - "fragID": "section", - "parentRoles": [ - "structure" - ], - "localprops": [ - { - "is": "state", - "name": "aria-expanded", - "required": false - } - ], - "allprops": [ - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "sectionhead": { - "name": "sectionhead", - "fragID": "sectionhead", - "parentRoles": [ - "structure" - ], - "localprops": [ - { - "is": "state", - "name": "aria-expanded", - "required": false - } - ], - "allprops": [ - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "select": { - "name": "select", - "fragID": "select", - "parentRoles": [ - "composite", - "group" - ], - "localprops": [ - { - "is": "property", - "name": "aria-orientation", - "required": false - } - ], - "allprops": [ - { - "is": "property", - "name": "aria-orientation", - "required": false - }, - { - "is": "property", - "name": "aria-activedescendant", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - }, - { - "is": "property", - "name": "aria-activedescendant", - "required": false - }, - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "separator": { - "name": "separator", - "fragID": "separator", - "parentRoles": [ - "structure" - ], - "localprops": [ - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-orientation", - "required": false - } - ] - }, - "slider": { - "name": "slider", - "fragID": "slider", - "parentRoles": [ - "input", - "range" - ], - "localprops": [ - { - "is": "property", - "name": "aria-valuemax", - "required": true - }, - { - "is": "property", - "name": "aria-valuemin", - "required": true - }, - { - "is": "property", - "name": "aria-valuenow", - "required": true - }, - { - "is": "property", - "name": "aria-orientation", - "required": false - }, - { - "is": "property", - "name": "aria-readonly", - "required": false - } - ] - }, - "spinbutton": { - "name": "spinbutton", - "fragID": "spinbutton", - "parentRoles": [ - "input", - "range" - ], - "localprops": [ - { - "is": "property", - "name": "aria-valuemax", - "required": true - }, - { - "is": "property", - "name": "aria-valuemin", - "required": true - }, - { - "is": "property", - "name": "aria-valuenow", - "required": true - }, - { - "is": "property", - "name": "aria-readonly", - "required": false - }, - { - "is": "property", - "name": "aria-required", - "required": false - } - ] - }, - "status": { - "name": "status", - "fragID": "status", - "parentRoles": [ - "section" - ], - "localprops": [], - "allprops": [ - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "structure": { - "name": "structure", - "fragID": "structure", - "parentRoles": [ - "roletype" - ], - "localprops": [], - "allprops": [ - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "switch": { - "name": "switch", - "fragID": "switch", - "parentRoles": [ - "checkbox" - ], - "localprops": [ - { - "is": "state", - "name": "aria-checked", - "required": true - } - ] - }, - "tab": { - "name": "tab", - "fragID": "tab", - "parentRoles": [ - "sectionhead", - "widget" - ], - "localprops": [ - { - "is": "property", - "name": "aria-posinset", - "required": false - }, - { - "is": "state", - "name": "aria-selected", - "required": false - }, - { - "is": "property", - "name": "aria-setsize", - "required": false - } - ] - }, - "table": { - "name": "table", - "fragID": "table", - "parentRoles": [ - "section" - ], - "localprops": [ - { - "is": "property", - "name": "aria-colcount", - "required": false - }, - { - "is": "property", - "name": "aria-rowcount", - "required": false - } - ], - "allprops": [ - { - "is": "property", - "name": "aria-colcount", - "required": false - }, - { - "is": "property", - "name": "aria-rowcount", - "required": false - }, - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "tablist": { - "name": "tablist", - "fragID": "tablist", - "parentRoles": [ - "composite" - ], - "localprops": [ - { - "is": "property", - "name": "aria-level", - "required": false - }, - { - "is": "property", - "name": "aria-multiselectable", - "required": false - }, - { - "is": "property", - "name": "aria-orientation", - "required": false - } - ] - }, - "tabpanel": { - "name": "tabpanel", - "fragID": "tabpanel", - "parentRoles": [ - "section" - ], - "localprops": [] - }, - "term": { - "name": "term", - "fragID": "term", - "parentRoles": [ - "section" - ], - "localprops": [] - }, - "textbox": { - "name": "textbox", - "fragID": "textbox", - "parentRoles": [ - "input" - ], - "localprops": [ - { - "is": "property", - "name": "aria-activedescendant", - "required": false - }, - { - "is": "property", - "name": "aria-autocomplete", - "required": false - }, - { - "is": "property", - "name": "aria-multiline", - "required": false - }, - { - "is": "property", - "name": "aria-placeholder", - "required": false - }, - { - "is": "property", - "name": "aria-readonly", - "required": false - }, - { - "is": "property", - "name": "aria-required", - "required": false - } - ], - "allprops": [ - { - "is": "property", - "name": "aria-activedescendant", - "required": false - }, - { - "is": "property", - "name": "aria-autocomplete", - "required": false - }, - { - "is": "property", - "name": "aria-multiline", - "required": false - }, - { - "is": "property", - "name": "aria-placeholder", - "required": false - }, - { - "is": "property", - "name": "aria-readonly", - "required": false - }, - { - "is": "property", - "name": "aria-required", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "timer": { - "name": "timer", - "fragID": "timer", - "parentRoles": [ - "status" - ], - "localprops": [] - }, - "toolbar": { - "name": "toolbar", - "fragID": "toolbar", - "parentRoles": [ - "group" - ], - "localprops": [ - { - "is": "property", - "name": "aria-orientation", - "required": false - } - ] - }, - "tooltip": { - "name": "tooltip", - "fragID": "tooltip", - "parentRoles": [ - "section" - ], - "localprops": [] - }, - "tree": { - "name": "tree", - "fragID": "tree", - "parentRoles": [ - "select" - ], - "localprops": [ - { - "is": "property", - "name": "aria-multiselectable", - "required": false - }, - { - "is": "property", - "name": "aria-required", - "required": false - } - ], - "allprops": [ - { - "is": "property", - "name": "aria-multiselectable", - "required": false - }, - { - "is": "property", - "name": "aria-required", - "required": false - }, - { - "is": "property", - "name": "aria-orientation", - "required": false - }, - { - "is": "property", - "name": "aria-activedescendant", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - }, - { - "is": "property", - "name": "aria-activedescendant", - "required": false - }, - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "treegrid": { - "name": "treegrid", - "fragID": "treegrid", - "parentRoles": [ - "grid", - "tree" - ], - "localprops": [] - }, - "treeitem": { - "name": "treeitem", - "fragID": "treeitem", - "parentRoles": [ - "listitem", - "option" - ], - "localprops": [] - }, - "widget": { - "name": "widget", - "fragID": "widget", - "parentRoles": [ - "roletype" - ], - "localprops": [], - "allprops": [ - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - }, - "window": { - "name": "window", - "fragID": "window", - "parentRoles": [ - "roletype" - ], - "localprops": [ - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-modal", - "required": false - } - ], - "allprops": [ - { - "is": "state", - "name": "aria-expanded", - "required": false - }, - { - "is": "property", - "name": "aria-modal", - "required": false - }, - { - "is": "property", - "name": "aria-atomic", - "required": false - }, - { - "is": "state", - "name": "aria-busy", - "required": false - }, - { - "is": "property", - "name": "aria-controls", - "required": false - }, - { - "is": "state", - "name": "aria-current", - "required": false - }, - { - "is": "property", - "name": "aria-describedby", - "required": false - }, - { - "is": "property", - "name": "aria-details", - "required": false - }, - { - "is": "state", - "name": "aria-disabled", - "required": false - }, - { - "is": "property", - "name": "aria-dropeffect", - "required": false - }, - { - "is": "property", - "name": "aria-errormessage", - "required": false - }, - { - "is": "property", - "name": "aria-flowto", - "required": false - }, - { - "is": "state", - "name": "aria-grabbed", - "required": false - }, - { - "is": "property", - "name": "aria-haspopup", - "required": false - }, - { - "is": "state", - "name": "aria-hidden", - "required": false - }, - { - "is": "state", - "name": "aria-invalid", - "required": false - }, - { - "is": "property", - "name": "aria-keyshortcuts", - "required": false - }, - { - "is": "property", - "name": "aria-label", - "required": false - }, - { - "is": "property", - "name": "aria-labelledby", - "required": false - }, - { - "is": "property", - "name": "aria-live", - "required": false - }, - { - "is": "property", - "name": "aria-owns", - "required": false - }, - { - "is": "property", - "name": "aria-relevant", - "required": false - }, - { - "is": "property", - "name": "aria-roledescription", - "required": false - } - ] - } -} + 'alert': { + 'name': 'alert', + 'fragID': 'alert', + 'parentRoles': [ + 'section' + ], + 'localprops': [], + 'allprops': [ + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'alertdialog': { + 'name': 'alertdialog', + 'fragID': 'alertdialog', + 'parentRoles': [ + 'alert', + 'dialog' + ], + 'localprops': [] + }, + 'application': { + 'name': 'application', + 'fragID': 'application', + 'parentRoles': [ + 'structure' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-activedescendant', + 'required': false + } + ] + }, + 'article': { + 'name': 'article', + 'fragID': 'article', + 'parentRoles': [ + 'document' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-posinset', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-setsize', + 'required': false + } + ] + }, + 'banner': { + 'name': 'banner', + 'fragID': 'banner', + 'parentRoles': [ + 'landmark' + ], + 'localprops': [] + }, + 'button': { + 'name': 'button', + 'fragID': 'button', + 'parentRoles': [ + 'command' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-pressed', + 'required': false + } + ] + }, + 'cell': { + 'name': 'cell', + 'fragID': 'cell', + 'parentRoles': [ + 'section' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-colindex', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-colspan', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-rowindex', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-rowspan', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-colindex', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-colspan', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-rowindex', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-rowspan', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'checkbox': { + 'name': 'checkbox', + 'fragID': 'checkbox', + 'parentRoles': [ + 'input' + ], + 'localprops': [ + { + 'is': 'state', + 'name': 'aria-checked', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-readonly', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'state', + 'name': 'aria-checked', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-readonly', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'columnheader': { + 'name': 'columnheader', + 'fragID': 'columnheader', + 'parentRoles': [ + 'cell', + 'gridcell', + 'sectionhead' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-sort', + 'required': false + } + ] + }, + 'combobox': { + 'name': 'combobox', + 'fragID': 'combobox', + 'parentRoles': [ + 'select' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-controls', + 'required': true + }, + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-autocomplete', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-readonly', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-required', + 'required': false + } + ] + }, + 'command': { + 'name': 'command', + 'fragID': 'command', + 'parentRoles': [ + 'widget' + ], + 'localprops': [], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'complementary': { + 'name': 'complementary', + 'fragID': 'complementary', + 'parentRoles': [ + 'landmark' + ], + 'localprops': [] + }, + 'composite': { + 'name': 'composite', + 'fragID': 'composite', + 'parentRoles': [ + 'widget' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-activedescendant', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-activedescendant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'contentinfo': { + 'name': 'contentinfo', + 'fragID': 'contentinfo', + 'parentRoles': [ + 'landmark' + ], + 'localprops': [] + }, + 'definition': { + 'name': 'definition', + 'fragID': 'definition', + 'parentRoles': [ + 'section' + ], + 'localprops': [] + }, + 'dialog': { + 'name': 'dialog', + 'fragID': 'dialog', + 'parentRoles': [ + 'window' + ], + 'localprops': [], + 'allprops': [ + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-modal', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'directory': { + 'name': 'directory', + 'fragID': 'directory', + 'parentRoles': [ + 'list' + ], + 'localprops': [] + }, + 'document': { + 'name': 'document', + 'fragID': 'document', + 'parentRoles': [ + 'structure' + ], + 'localprops': [ + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'feed': { + 'name': 'feed', + 'fragID': 'feed', + 'parentRoles': [ + 'list' + ], + 'localprops': [] + }, + 'figure': { + 'name': 'figure', + 'fragID': 'figure', + 'parentRoles': [ + 'section' + ], + 'localprops': [] + }, + 'form': { + 'name': 'form', + 'fragID': 'form', + 'parentRoles': [ + 'landmark' + ], + 'localprops': [] + }, + 'grid': { + 'name': 'grid', + 'fragID': 'grid', + 'parentRoles': [ + 'composite', + 'table' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-level', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-multiselectable', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-readonly', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-level', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-multiselectable', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-readonly', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-activedescendant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-colcount', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-rowcount', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'gridcell': { + 'name': 'gridcell', + 'fragID': 'gridcell', + 'parentRoles': [ + 'cell', + 'widget' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-readonly', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-required', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-selected', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-readonly', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-required', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-selected', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-colindex', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-colspan', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-rowindex', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-rowspan', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'group': { + 'name': 'group', + 'fragID': 'group', + 'parentRoles': [ + 'section' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-activedescendant', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-activedescendant', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'heading': { + 'name': 'heading', + 'fragID': 'heading', + 'parentRoles': [ + 'sectionhead' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-level', + 'required': true + } + ] + }, + 'img': { + 'name': 'img', + 'fragID': 'img', + 'parentRoles': [ + 'section' + ], + 'localprops': [] + }, + 'input': { + 'name': 'input', + 'fragID': 'input', + 'parentRoles': [ + 'widget' + ], + 'localprops': [], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'landmark': { + 'name': 'landmark', + 'fragID': 'landmark', + 'parentRoles': [ + 'section' + ], + 'localprops': [], + 'allprops': [ + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'link': { + 'name': 'link', + 'fragID': 'link', + 'parentRoles': [ + 'command' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-expanded', + 'required': false + } + ] + }, + 'list': { + 'name': 'list', + 'fragID': 'list', + 'parentRoles': [ + 'section' + ], + 'localprops': [], + 'allprops': [ + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'listbox': { + 'name': 'listbox', + 'fragID': 'listbox', + 'parentRoles': [ + 'select' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-multiselectable', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-readonly', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-required', + 'required': false + } + ] + }, + 'listitem': { + 'name': 'listitem', + 'fragID': 'listitem', + 'parentRoles': [ + 'section' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-level', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-posinset', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-setsize', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-level', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-posinset', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-setsize', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'log': { + 'name': 'log', + 'fragID': 'log', + 'parentRoles': [ + 'section' + ], + 'localprops': [] + }, + 'main': { + 'name': 'main', + 'fragID': 'main', + 'parentRoles': [ + 'landmark' + ], + 'localprops': [] + }, + 'marquee': { + 'name': 'marquee', + 'fragID': 'marquee', + 'parentRoles': [ + 'section' + ], + 'localprops': [] + }, + 'math': { + 'name': 'math', + 'fragID': 'math', + 'parentRoles': [ + 'section' + ], + 'localprops': [] + }, + 'menu': { + 'name': 'menu', + 'fragID': 'menu', + 'parentRoles': [ + 'select' + ], + 'localprops': [], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-orientation', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-activedescendant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-activedescendant', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'menubar': { + 'name': 'menubar', + 'fragID': 'menubar', + 'parentRoles': [ + 'menu' + ], + 'localprops': [] + }, + 'menuitem': { + 'name': 'menuitem', + 'fragID': 'menuitem', + 'parentRoles': [ + 'command' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-posinset', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-setsize', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-posinset', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-setsize', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'menuitemcheckbox': { + 'name': 'menuitemcheckbox', + 'fragID': 'menuitemcheckbox', + 'parentRoles': [ + 'checkbox', + 'menuitem' + ], + 'localprops': [], + 'allprops': [ + { + 'is': 'state', + 'name': 'aria-checked', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-readonly', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-posinset', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-setsize', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'menuitemradio': { + 'name': 'menuitemradio', + 'fragID': 'menuitemradio', + 'parentRoles': [ + 'menuitemcheckbox', + 'radio' + ], + 'localprops': [] + }, + 'navigation': { + 'name': 'navigation', + 'fragID': 'navigation', + 'parentRoles': [ + 'landmark' + ], + 'localprops': [] + }, + 'none': { + 'name': 'none', + 'fragID': 'none', + 'parentRoles': [], + 'localprops': [] + }, + 'note': { + 'name': 'note', + 'fragID': 'note', + 'parentRoles': [ + 'section' + ], + 'localprops': [] + }, + 'option': { + 'name': 'option', + 'fragID': 'option', + 'parentRoles': [ + 'input' + ], + 'localprops': [ + { + 'is': 'state', + 'name': 'aria-selected', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-checked', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-posinset', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-setsize', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'state', + 'name': 'aria-selected', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-checked', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-posinset', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-setsize', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'password': { + 'name': 'password', + 'fragID': 'password', + 'parentRoles': [ + 'input' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-placeholder', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-readonly', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-required', + 'required': false + } + ] + }, + 'presentation': { + 'name': 'presentation', + 'fragID': 'presentation', + 'parentRoles': [ + 'structure' + ], + 'localprops': [] + }, + 'progressbar': { + 'name': 'progressbar', + 'fragID': 'progressbar', + 'parentRoles': [ + 'range', + 'status' + ], + 'localprops': [] + }, + 'radio': { + 'name': 'radio', + 'fragID': 'radio', + 'parentRoles': [ + 'input' + ], + 'localprops': [ + { + 'is': 'state', + 'name': 'aria-checked', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-posinset', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-setsize', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'state', + 'name': 'aria-checked', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-posinset', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-setsize', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'radiogroup': { + 'name': 'radiogroup', + 'fragID': 'radiogroup', + 'parentRoles': [ + 'select' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-readonly', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-required', + 'required': false + } + ] + }, + 'range': { + 'name': 'range', + 'fragID': 'range', + 'parentRoles': [ + 'widget' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-valuemax', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-valuemin', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-valuenow', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-valuetext', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-valuemax', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-valuemin', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-valuenow', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-valuetext', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'region': { + 'name': 'region', + 'fragID': 'region', + 'parentRoles': [ + 'landmark' + ], + 'localprops': [] + }, + 'roletype': { + 'name': 'roletype', + 'fragID': 'roletype', + 'parentRoles': [], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'row': { + 'name': 'row', + 'fragID': 'row', + 'parentRoles': [ + 'group', + 'widget' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-colindex', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-level', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-rowindex', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-selected', + 'required': false + } + ] + }, + 'rowgroup': { + 'name': 'rowgroup', + 'fragID': 'rowgroup', + 'parentRoles': [ + 'structure' + ], + 'localprops': [] + }, + 'rowheader': { + 'name': 'rowheader', + 'fragID': 'rowheader', + 'parentRoles': [ + 'cell', + 'gridcell', + 'sectionhead' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-sort', + 'required': false + } + ] + }, + 'scrollbar': { + 'name': 'scrollbar', + 'fragID': 'scrollbar', + 'parentRoles': [ + 'range' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-controls', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-orientation', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-valuemax', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-valuemin', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-valuenow', + 'required': true + } + ] + }, + 'search': { + 'name': 'search', + 'fragID': 'search', + 'parentRoles': [ + 'landmark' + ], + 'localprops': [] + }, + 'searchbox': { + 'name': 'searchbox', + 'fragID': 'searchbox', + 'parentRoles': [ + 'textbox' + ], + 'localprops': [] + }, + 'section': { + 'name': 'section', + 'fragID': 'section', + 'parentRoles': [ + 'structure' + ], + 'localprops': [ + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'sectionhead': { + 'name': 'sectionhead', + 'fragID': 'sectionhead', + 'parentRoles': [ + 'structure' + ], + 'localprops': [ + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'select': { + 'name': 'select', + 'fragID': 'select', + 'parentRoles': [ + 'composite', + 'group' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-orientation', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-orientation', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-activedescendant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-activedescendant', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'separator': { + 'name': 'separator', + 'fragID': 'separator', + 'parentRoles': [ + 'structure' + ], + 'localprops': [ + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-orientation', + 'required': false + } + ] + }, + 'slider': { + 'name': 'slider', + 'fragID': 'slider', + 'parentRoles': [ + 'input', + 'range' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-valuemax', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-valuemin', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-valuenow', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-orientation', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-readonly', + 'required': false + } + ] + }, + 'spinbutton': { + 'name': 'spinbutton', + 'fragID': 'spinbutton', + 'parentRoles': [ + 'input', + 'range' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-valuemax', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-valuemin', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-valuenow', + 'required': true + }, + { + 'is': 'property', + 'name': 'aria-readonly', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-required', + 'required': false + } + ] + }, + 'status': { + 'name': 'status', + 'fragID': 'status', + 'parentRoles': [ + 'section' + ], + 'localprops': [], + 'allprops': [ + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'structure': { + 'name': 'structure', + 'fragID': 'structure', + 'parentRoles': [ + 'roletype' + ], + 'localprops': [], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'switch': { + 'name': 'switch', + 'fragID': 'switch', + 'parentRoles': [ + 'checkbox' + ], + 'localprops': [ + { + 'is': 'state', + 'name': 'aria-checked', + 'required': true + } + ] + }, + 'tab': { + 'name': 'tab', + 'fragID': 'tab', + 'parentRoles': [ + 'sectionhead', + 'widget' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-posinset', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-selected', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-setsize', + 'required': false + } + ] + }, + 'table': { + 'name': 'table', + 'fragID': 'table', + 'parentRoles': [ + 'section' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-colcount', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-rowcount', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-colcount', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-rowcount', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'tablist': { + 'name': 'tablist', + 'fragID': 'tablist', + 'parentRoles': [ + 'composite' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-level', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-multiselectable', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-orientation', + 'required': false + } + ] + }, + 'tabpanel': { + 'name': 'tabpanel', + 'fragID': 'tabpanel', + 'parentRoles': [ + 'section' + ], + 'localprops': [] + }, + 'term': { + 'name': 'term', + 'fragID': 'term', + 'parentRoles': [ + 'section' + ], + 'localprops': [] + }, + 'textbox': { + 'name': 'textbox', + 'fragID': 'textbox', + 'parentRoles': [ + 'input' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-activedescendant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-autocomplete', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-multiline', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-placeholder', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-readonly', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-required', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-activedescendant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-autocomplete', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-multiline', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-placeholder', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-readonly', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-required', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'timer': { + 'name': 'timer', + 'fragID': 'timer', + 'parentRoles': [ + 'status' + ], + 'localprops': [] + }, + 'toolbar': { + 'name': 'toolbar', + 'fragID': 'toolbar', + 'parentRoles': [ + 'group' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-orientation', + 'required': false + } + ] + }, + 'tooltip': { + 'name': 'tooltip', + 'fragID': 'tooltip', + 'parentRoles': [ + 'section' + ], + 'localprops': [] + }, + 'tree': { + 'name': 'tree', + 'fragID': 'tree', + 'parentRoles': [ + 'select' + ], + 'localprops': [ + { + 'is': 'property', + 'name': 'aria-multiselectable', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-required', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-multiselectable', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-required', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-orientation', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-activedescendant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-activedescendant', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'treegrid': { + 'name': 'treegrid', + 'fragID': 'treegrid', + 'parentRoles': [ + 'grid', + 'tree' + ], + 'localprops': [] + }, + 'treeitem': { + 'name': 'treeitem', + 'fragID': 'treeitem', + 'parentRoles': [ + 'listitem', + 'option' + ], + 'localprops': [] + }, + 'widget': { + 'name': 'widget', + 'fragID': 'widget', + 'parentRoles': [ + 'roletype' + ], + 'localprops': [], + 'allprops': [ + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + }, + 'window': { + 'name': 'window', + 'fragID': 'window', + 'parentRoles': [ + 'roletype' + ], + 'localprops': [ + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-modal', + 'required': false + } + ], + 'allprops': [ + { + 'is': 'state', + 'name': 'aria-expanded', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-modal', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-atomic', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-busy', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-controls', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-current', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-describedby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-details', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-disabled', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-dropeffect', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-errormessage', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-flowto', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-grabbed', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-haspopup', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-hidden', + 'required': false + }, + { + 'is': 'state', + 'name': 'aria-invalid', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-keyshortcuts', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-label', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-labelledby', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-live', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-owns', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-relevant', + 'required': false + }, + { + 'is': 'property', + 'name': 'aria-roledescription', + 'required': false + } + ] + } +}; diff --git a/common/script/utility.js b/common/script/utility.js index 5384e24cf5..87d87dff92 100644 --- a/common/script/utility.js +++ b/common/script/utility.js @@ -2,14 +2,14 @@ // Change the authors credit to mapping contributors credit // Right now this will run on any author credit, not scoped to AAMs -require(["core/pubsubhub"], function(respecEvents) { - "use strict"; - respecEvents.sub('end', function(message) { - if (message === 'core/link-to-dfn') { - document.querySelectorAll("div.head dt").forEach(function(node){ - if (node.textContent == "Authors:") node.textContent = "Platform Mapping Maintainers:"; - }); - } - }) -}) +require([ 'core/pubsubhub' ], function (respecEvents) { + 'use strict'; + respecEvents.sub('end', function (message) { + if (message === 'core/link-to-dfn') { + document.querySelectorAll('div.head dt').forEach(function (node) { + if (node.textContent == 'Authors:') {node.textContent = 'Platform Mapping Maintainers:';} + }); + } + }); +}); diff --git a/package.json b/package.json index 2b36030f80..033ef9e27f 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,8 @@ "example": "examples" }, "scripts": { - "fix": "eslint --fix bin examples", - "lint": "eslint bin examples", + "fix": "eslint --fix .", + "lint": "eslint .", "test": "npm run lint" }, "repository": { diff --git a/respec-config.js b/respec-config.js index 8248305b87..302b098d74 100644 --- a/respec-config.js +++ b/respec-config.js @@ -11,7 +11,7 @@ var respecConfig = { // publishDate: "2013-08-22", noRecTrack: true, diffTool: 'http://www.aptest.com/standards/htmldiff/htmldiff.pl', - license: "w3c-software-doc", + license: 'w3c-software-doc', // The specifications short name, as in http://www.w3.org/TR/short-name/ shortName: 'wai-aria-practices-1.1', @@ -150,5 +150,5 @@ var respecConfig = { localBiblio: biblio, - preProcess: [linkCrossReferences] + preProcess: [ linkCrossReferences ] };