Commit 11353980 authored by aboxhall's avatar aboxhall Committed by Commit Bot

Bring ARIA config up to date with ARIA 1.1 (https://www.w3.org/TR/wai-aria-1.1)

BUG=616950

Review-Url: https://codereview.chromium.org/2962673003
Cr-Commit-Position: refs/heads/master@{#485174}
parent 9bf17495
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
Accessibility.ARIAMetadata._config = { Accessibility.ARIAMetadata._config = {
'attributes': { 'attributes': {
'aria-activedescendant': {'type': 'IDREF'}, 'aria-activedescendant': {'type': 'IDREF'},
...@@ -5,31 +9,46 @@ Accessibility.ARIAMetadata._config = { ...@@ -5,31 +9,46 @@ Accessibility.ARIAMetadata._config = {
'aria-autocomplete': {'default': 'none', 'enum': ['inline', 'list', 'both', 'none'], 'type': 'token'}, 'aria-autocomplete': {'default': 'none', 'enum': ['inline', 'list', 'both', 'none'], 'type': 'token'},
'aria-busy': {'default': 'false', 'type': 'boolean'}, 'aria-busy': {'default': 'false', 'type': 'boolean'},
'aria-checked': {'default': 'undefined', 'enum': ['true', 'false', 'mixed', 'undefined'], 'type': 'token'}, 'aria-checked': {'default': 'undefined', 'enum': ['true', 'false', 'mixed', 'undefined'], 'type': 'token'},
'aria-colcount': {'type': 'integer'},
'aria-colindex': {'type': 'integer'},
'aria-colspan': {'type': 'integer'},
'aria-controls': {'type': 'IDREF_list'}, 'aria-controls': {'type': 'IDREF_list'},
'aria-current':
{'default': 'false', 'enum': ['page', 'step', 'location', 'date', 'time', 'true', 'false'], 'type': 'token'},
'aria-describedby': {'type': 'IDREF_list'}, 'aria-describedby': {'type': 'IDREF_list'},
'aria-details': {'type': 'IDREF'},
'aria-disabled': {'default': 'false', 'type': 'boolean'}, 'aria-disabled': {'default': 'false', 'type': 'boolean'},
'aria-dropeffect': 'aria-dropeffect':
{'default': 'none', 'enum': ['copy', 'move', 'link', 'execute', 'popup', 'none'], 'type': 'token_list'}, {'default': 'none', 'enum': ['copy', 'move', 'link', 'execute', 'popup', 'none'], 'type': 'token_list'},
'aria-errormessage': {'type': 'IDREF'},
'aria-expanded': {'default': 'undefined', 'enum': ['true', 'false', 'undefined'], 'type': 'token'}, 'aria-expanded': {'default': 'undefined', 'enum': ['true', 'false', 'undefined'], 'type': 'token'},
'aria-flowto': {'type': 'IDREF_list'}, 'aria-flowto': {'type': 'IDREF_list'},
'aria-grabbed': {'default': 'undefined', 'enum': ['true', 'false', 'undefined'], 'type': 'token'}, 'aria-grabbed': {'default': 'undefined', 'enum': ['true', 'false', 'undefined'], 'type': 'token'},
'aria-haspopup': {'default': 'false', 'type': 'boolean'}, 'aria-haspopup':
'aria-hidden': {'default': 'false', 'type': 'boolean'}, {'default': 'false', 'enum': ['false', 'true', 'menu', 'listbox', 'tree', 'grid', 'dialog'], 'type': 'token'},
'aria-hidden': {'default': 'undefined', 'enum': ['true', 'false', 'undefined'], 'type': 'token'},
'aria-invalid': {'default': 'false', 'enum': ['grammar', 'false', 'spelling', 'true'], 'type': 'token'}, 'aria-invalid': {'default': 'false', 'enum': ['grammar', 'false', 'spelling', 'true'], 'type': 'token'},
'aria-keyshortcuts': {'type': 'string'},
'aria-label': {'type': 'string'}, 'aria-label': {'type': 'string'},
'aria-labelledby': {'type': 'IDREF_list'}, 'aria-labelledby': {'type': 'IDREF_list'},
'aria-level': {'type': 'integer'}, 'aria-level': {'type': 'integer'},
'aria-live': {'default': 'off', 'enum': ['off', 'polite', 'assertive'], 'type': 'token'}, 'aria-live': {'default': 'off', 'enum': ['off', 'polite', 'assertive'], 'type': 'token'},
'aria-modal': {'default': 'false', 'type': 'boolean'},
'aria-multiline': {'default': 'false', 'type': 'boolean'}, 'aria-multiline': {'default': 'false', 'type': 'boolean'},
'aria-multiselectable': {'default': 'false', 'type': 'boolean'}, 'aria-multiselectable': {'default': 'false', 'type': 'boolean'},
'aria-orientation': {'default': 'vertical', 'enum': ['horizontal', 'vertical'], 'type': 'token'}, 'aria-orientation': {'default': 'undefined', 'enum': ['horizontal', 'undefined', 'vertical'], 'type': 'token'},
'aria-owns': {'type': 'IDREF_list'}, 'aria-owns': {'type': 'IDREF_list'},
'aria-placeholder': {'type': 'string'},
'aria-posinset': {'type': 'integer'}, 'aria-posinset': {'type': 'integer'},
'aria-pressed': {'default': 'undefined', 'enum': ['true', 'false', 'mixed', 'undefined'], 'type': 'token'}, 'aria-pressed': {'default': 'undefined', 'enum': ['true', 'false', 'mixed', 'undefined'], 'type': 'token'},
'aria-readonly': {'default': 'false', 'type': 'boolean'}, 'aria-readonly': {'default': 'false', 'type': 'boolean'},
'aria-relevant': 'aria-relevant':
{'default': 'additions text', 'enum': ['additions', 'removals', 'text', 'all'], 'type': 'token_list'}, {'default': 'additions text', 'enum': ['additions', 'removals', 'text', 'all'], 'type': 'token_list'},
'aria-required': {'default': 'false', 'type': 'boolean'}, 'aria-required': {'default': 'false', 'type': 'boolean'},
'aria-roledescription': {'type': 'string'},
'aria-rowcount': {'type': 'integer'},
'aria-rowindex': {'type': 'integer'},
'aria-rowspan': {'type': 'integer'},
'aria-selected': {'default': 'undefined', 'enum': ['true', 'false', 'undefined'], 'type': 'token'}, 'aria-selected': {'default': 'undefined', 'enum': ['true', 'false', 'undefined'], 'type': 'token'},
'aria-setsize': {'type': 'integer'}, 'aria-setsize': {'type': 'integer'},
'aria-sort': {'default': 'none', 'enum': ['ascending', 'descending', 'none', 'other'], 'type': 'token'}, 'aria-sort': {'default': 'none', 'enum': ['ascending', 'descending', 'none', 'other'], 'type': 'token'},
...@@ -40,29 +59,56 @@ Accessibility.ARIAMetadata._config = { ...@@ -40,29 +59,56 @@ Accessibility.ARIAMetadata._config = {
'tabindex': {'type': 'integer'} 'tabindex': {'type': 'integer'}
}, },
'roles': { 'roles': {
'alert': {'nameFrom': ['author'], 'superclasses': ['region']}, 'alert': {
'alertdialog': {'nameFrom': ['author'], 'superclasses': ['alert', 'dialog']}, 'nameFrom': ['author'],
'application': {'nameFrom': ['author'], 'superclasses': ['landmark']}, 'superclasses': ['section'],
'article': {'nameFrom': ['author'], 'superclasses': ['document', 'region']}, 'implicitValues': {'aria-live': 'assertive', 'aria-atomic': 'true'}
},
'alertdialog': {'nameFrom': ['author'], 'superclasses': ['alert', 'dialog'], 'nameRequired': true},
'application': {'nameFrom': ['author'], 'superclasses': ['structure'], 'nameRequired': true},
'article': {
'nameFrom': ['author'],
'superclasses': ['document'],
'supportedAttributes': ['aria-posinset', 'aria-setsize']
},
'banner': {'nameFrom': ['author'], 'superclasses': ['landmark']}, 'banner': {'nameFrom': ['author'], 'superclasses': ['landmark']},
'button': { 'button': {
'nameFrom': ['contents', 'author'], 'nameFrom': ['contents', 'author'],
'superclasses': ['command'], 'superclasses': ['command'],
'supportedAttributes': ['aria-expanded', 'aria-pressed'] 'supportedAttributes': ['aria-expanded', 'aria-pressed'],
'nameRequired': true,
'childrenPresentational': true
},
'cell': {
'namefrom': ['contents', 'author'],
'scope': 'row',
'superclasses': ['section'],
'supportedAttributes': ['aria-colindex', 'aria-colspan', 'aria-rowindex', 'aria-rowspan']
},
'checkbox': {
'nameFrom': ['contents', 'author'],
'requiredAttributes': ['aria-checked'],
'superclasses': ['input'],
'supportedAttributes': ['aria-readonly'],
'nameRequired': true,
'implicitValues': {'aria-checked': false}
}, },
'checkbox': {'nameFrom': ['contents', 'author'], 'requiredAttributes': ['aria-checked'], 'superclasses': ['input']},
'columnheader': { 'columnheader': {
'nameFrom': ['contents', 'author'], 'nameFrom': ['contents', 'author'],
'scope': ['row'], 'scope': ['row'],
'superclasses': ['gridcell', 'sectionhead', 'widget'], 'superclasses': ['gridcell', 'sectionhead', 'widget'],
'supportedAttributes': ['aria-sort'] 'supportedAttributes': ['aria-sort'],
'nameRequired': true
}, },
'combobox': { 'combobox': {
'mustContain': ['listbox', 'textbox'], // TODO(aboxhall): Follow up with Nektarios and Aaron regarding role on textbox
'mustContain': ['textbox'],
'nameFrom': ['author'], 'nameFrom': ['author'],
'requiredAttributes': ['aria-expanded'], 'requiredAttributes': ['aria-controls', 'aria-expanded'],
'superclasses': ['select'], 'superclasses': ['select'],
'supportedAttributes': ['aria-autocomplete', 'aria-required'] 'supportedAttributes': ['aria-autocomplete', 'aria-readonly', 'aria-required'],
'nameRequired': true,
'implicitValues': {'aria-expanded': 'false', 'aria-haspopup': 'listbox'}
}, },
'command': {'abstract': true, 'nameFrom': ['author'], 'superclasses': ['widget']}, 'command': {'abstract': true, 'nameFrom': ['author'], 'superclasses': ['widget']},
'complementary': {'nameFrom': ['author'], 'superclasses': ['landmark']}, 'complementary': {'nameFrom': ['author'], 'superclasses': ['landmark']},
...@@ -74,74 +120,151 @@ Accessibility.ARIAMetadata._config = { ...@@ -74,74 +120,151 @@ Accessibility.ARIAMetadata._config = {
}, },
'contentinfo': {'nameFrom': ['author'], 'superclasses': ['landmark']}, 'contentinfo': {'nameFrom': ['author'], 'superclasses': ['landmark']},
'definition': {'nameFrom': ['author'], 'superclasses': ['section']}, 'definition': {'nameFrom': ['author'], 'superclasses': ['section']},
'dialog': {'nameFrom': ['author'], 'superclasses': ['window']}, 'dialog': {'nameFrom': ['author'], 'superclasses': ['window'], 'nameRequired': true},
'directory': {'nameFrom': ['contents', 'author'], 'superclasses': ['list']}, 'directory': {'nameFrom': ['author'], 'superclasses': ['list']},
'document': {'nameFrom': ['author'], 'superclasses': ['structure'], 'supportedAttributes': ['aria-expanded']}, 'document': {
'nameFrom': ['author'],
'superclasses': ['structure'],
'supportedAttributes': ['aria-expanded'],
'nameRequired': false
},
'feed': {'nameFrom': ['author'], 'superclasses': ['list'], 'mustContain': ['article'], 'nameRequired': false},
'figure': {'namefrom': ['author'], 'superclasses': ['section'], 'nameRequired': false},
'form': {'nameFrom': ['author'], 'superclasses': ['landmark']}, 'form': {'nameFrom': ['author'], 'superclasses': ['landmark']},
'grid': { 'grid': {
'mustContain': ['row', 'rowgroup', 'row'],
'nameFrom': ['author'], 'nameFrom': ['author'],
'superclasses': ['composite', 'region'], 'superclasses': ['composite', 'table'],
'supportedAttributes': ['aria-level', 'aria-multiselectable', 'aria-readonly'] // TODO(aboxhall): Figure out how to express "rowgroup --> row" here.
'mustContain': ['row'],
'supportedAttributes': ['aria-level', 'aria-multiselectable', 'aria-readonly'],
'nameRequired': true
}, },
'gridcell': { 'gridcell': {
'nameFrom': ['contents', 'author'], 'nameFrom': ['contents', 'author'],
'scope': ['row'], 'scope': ['row'],
'superclasses': ['section', 'widget'], 'superclasses': ['cell', 'widget'],
'supportedAttributes': ['aria-readonly', 'aria-required', 'aria-selected'] 'supportedAttributes': ['aria-readonly', 'aria-required', 'aria-selected'],
'nameRequired': true
}, },
'group': {'nameFrom': ['author'], 'superclasses': ['section'], 'supportedAttributes': ['aria-activedescendant']}, 'group': {'nameFrom': ['author'], 'superclasses': ['section'], 'supportedAttributes': ['aria-activedescendant']},
'heading': {'superclasses': ['sectionhead'], 'supportedAttributes': ['aria-level']}, 'heading': {
'img': {'nameFrom': ['author'], 'superclasses': ['section']}, 'namefrom': ['contents', 'author'],
'superclasses': ['sectionhead'],
'supportedAttributes': ['aria-level'],
'nameRequired': true,
'implicitValues': {'aria-level': '2'}
},
'img': {'nameFrom': ['author'], 'superclasses': ['section'], 'nameRequired': true, 'childrenPresentational': true},
'input': {'abstract': true, 'nameFrom': ['author'], 'superclasses': ['widget']}, 'input': {'abstract': true, 'nameFrom': ['author'], 'superclasses': ['widget']},
'landmark': {'abstract': true, 'nameFrom': ['contents', 'author'], 'superclasses': ['region']}, 'landmark': {'abstract': true, 'nameFrom': ['author'], 'superclasses': ['section'], 'nameRequired': false},
'link': {'nameFrom': ['contents', 'author'], 'superclasses': ['command'], 'supportedAttributes': ['aria-expanded']}, 'link': {
'list': {'mustContain': ['group', 'listitem', 'listitem'], 'nameFrom': ['author'], 'superclasses': ['region']}, 'nameFrom': ['contents', 'author'],
'superclasses': ['command'],
'supportedAttributes': ['aria-expanded'],
'nameRequired': true
},
'list': {
// TODO(aboxhall): Figure out how to express "group --> listitem"
'mustContain': ['listitem'],
'nameFrom': ['author'],
'superclasses': ['section'],
'implicitValues': {'aria-orientation': 'vertical'}
},
'listbox': { 'listbox': {
'mustContain': ['option'],
'nameFrom': ['author'], 'nameFrom': ['author'],
'superclasses': ['list', 'select'], 'superclasses': ['select'],
'supportedAttributes': ['aria-multiselectable', 'aria-required'] 'mustContain': ['option'],
'supportedAttributes': ['aria-multiselectable', 'aria-readonly', 'aria-required'],
'nameRequired': true,
'implicitValues': {'aria-orientation': 'vertical'},
}, },
'listitem': { 'listitem': {
'nameFrom': ['contents', 'author'], 'nameFrom': ['author'],
'scope': ['list'],
'superclasses': ['section'], 'superclasses': ['section'],
'scope': ['group', 'list'],
'supportedAttributes': ['aria-level', 'aria-posinset', 'aria-setsize'] 'supportedAttributes': ['aria-level', 'aria-posinset', 'aria-setsize']
}, },
'log': {'nameFrom': ['author'], 'superclasses': ['region']}, 'log': {
'nameFrom': ['author'],
'superclasses': ['section'],
'nameRequired': true,
'implicitValues': {'aria-live': 'polite'}
},
'main': {'nameFrom': ['author'], 'superclasses': ['landmark']}, 'main': {'nameFrom': ['author'], 'superclasses': ['landmark']},
'marquee': {'superclasses': ['section']}, 'marquee': {'nameFrom': ['author'], 'superclasses': ['section'], 'nameRequired': true},
'math': {'nameFrom': ['author'], 'superclasses': ['section']}, 'math': {
'nameFrom': ['author'],
'superclasses': ['section'],
'nameRequired': true,
// TODO(aboxhall/aleventhal): this is what the spec says, but seems wrong.
childrenPresentational: true
},
'menu': { 'menu': {
'mustContain': ['group', 'menuitemradio', 'menuitem', 'menuitemcheckbox', 'menuitemradio'], 'mustContain': ['group', 'menuitemradio', 'menuitem', 'menuitemcheckbox', 'menuitemradio'],
'nameFrom': ['author'], 'nameFrom': ['author'],
'superclasses': ['list', 'select'] 'superclasses': ['select'],
'implicitValues': {'aria-orientation': 'vertical'}
}, },
'menubar': {'nameFrom': ['author'], 'superclasses': ['menu']}, 'menubar': {
'menuitem': {'nameFrom': ['contents', 'author'], 'scope': ['menu', 'menubar'], 'superclasses': ['command']}, 'nameFrom': ['author'],
'menuitemcheckbox': 'superclasses': ['menu'],
{'nameFrom': ['contents', 'author'], 'scope': ['menu', 'menubar'], 'superclasses': ['checkbox', 'menuitem']}, // TODO(aboxhall): figure out how to express "group --> {menuitem, menuitemradio, menuitemcheckbox}"
'menuitemradio': { 'mustContain': ['menuitem', 'menuitemradio', 'menuitemcheckbox'],
'implicitValues': {'aria-orientation': 'horizontal'}
},
'menuitem': {
'nameFrom': ['contents', 'author'],
'scope': ['group', 'menu', 'menubar'],
'superclasses': ['command'],
'nameRequired': true
},
'menuitemcheckbox': {
'nameFrom': ['contents', 'author'], 'nameFrom': ['contents', 'author'],
'scope': ['menu', 'menubar'], 'scope': ['menu', 'menubar'],
'superclasses': ['menuitemcheckbox', 'radio'] 'superclasses': ['checkbox', 'menuitem'],
'nameRequired': true,
'childrenPresentational': true,
'implicitValues': {'aria-checked': false}
},
'menuitemradio': {
'nameFrom': ['contents', 'author'],
'scope': ['menu', 'menubar', 'group'],
'superclasses': ['menuitemcheckbox', 'radio'],
'nameRequired': true,
'childrenPresentational': true,
'implicitValues': {'aria-checked': false}
}, },
'navigation': {'nameFrom': ['author'], 'superclasses': ['landmark']}, 'navigation': {'nameFrom': ['author'], 'superclasses': ['landmark']},
'none': {'superclasses': ['structure']},
'note': {'nameFrom': ['author'], 'superclasses': ['section']}, 'note': {'nameFrom': ['author'], 'superclasses': ['section']},
'option': { 'option': {
'nameFrom': ['contents', 'author'], 'nameFrom': ['contents', 'author'],
'scope': ['listbox'],
'superclasses': ['input'], 'superclasses': ['input'],
'supportedAttributes': ['aria-checked', 'aria-posinset', 'aria-selected', 'aria-setsize'] 'requiredAttributes': ['aria-selected'],
'supportedAttributes': ['aria-checked', 'aria-posinset', 'aria-setsize'],
'nameRequired': true,
'childrenPresentational': true,
'implicitValues': {'aria-selected': 'false'}
}, },
'presentation': {'superclasses': ['structure']}, 'presentation': {'superclasses': ['structure']},
'progressbar': {'nameFrom': ['author'], 'superclasses': ['range']}, 'progressbar':
'radio': {'nameFrom': ['contents', 'author'], 'superclasses': ['checkbox', 'option']}, {'nameFrom': ['author'], 'superclasses': ['range'], 'nameRequired': true, 'childrenPresentational': true},
'radio': {
'nameFrom': ['contents', 'author'],
'superclasses': ['input'],
'requiredAttributes': ['aria-checked'],
'supportedAttributes': ['aria-posinset', 'aria-setsize'],
'nameRequired': true,
'childrenPresentational': true,
'implicitValues': {'aria-checked': 'false'}
},
'radiogroup': { 'radiogroup': {
'mustContain': ['radio'],
'nameFrom': ['author'], 'nameFrom': ['author'],
'superclasses': ['select'], 'superclasses': ['select'],
'supportedAttributes': ['aria-required'] 'mustContain': ['radio'],
'supportedAttributes': ['aria-readonly', 'aria-required'],
'nameRequired': true
}, },
'range': { 'range': {
'abstract': true, 'abstract': true,
...@@ -149,105 +272,169 @@ Accessibility.ARIAMetadata._config = { ...@@ -149,105 +272,169 @@ Accessibility.ARIAMetadata._config = {
'superclasses': ['widget'], 'superclasses': ['widget'],
'supportedAttributes': ['aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext'] 'supportedAttributes': ['aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext']
}, },
'region': {'nameFrom': ['author'], 'superclasses': ['section']}, 'region': {'nameFrom': ['author'], 'superclasses': ['landmark'], 'nameRequired': true},
'roletype': { 'roletype': {
'abstract': true, 'abstract': true,
'supportedAttributes': [ 'supportedAttributes': [
'aria-atomic', 'aria-busy', 'aria-controls', 'aria-describedby', 'aria-disabled', 'aria-dropeffect', 'aria-atomic', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details',
'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-label', 'aria-labelledby', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-flowto', 'aria-grabbed', 'aria-haspopup',
'aria-live', 'aria-owns', 'aria-relevant' 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live',
'aria-owns', 'aria-relevant', 'aria-roledescription'
] ]
}, },
'row': { 'row': {
'mustContain': ['columnheader', 'gridcell', 'rowheader'],
'nameFrom': ['contents', 'author'], 'nameFrom': ['contents', 'author'],
'scope': ['grid', 'rowgroup', 'treegrid'],
'superclasses': ['group', 'widget'], 'superclasses': ['group', 'widget'],
'supportedAttributes': ['aria-level', 'aria-selected'] 'mustContain': ['cell', 'columnheader', 'gridcell', 'rowheader'],
'scope': ['grid', 'rowgroup', 'table', 'treegrid'],
// TODO(aboxhall/aleventhal): This is not in the spec yet, but
// setsize and posinset are included here for treegrid
// purposes. Issue already filed on spec. Remove this comment
// when spec updated.
'supportedAttributes':
['aria-colindex', 'aria-level', 'aria-rowindex', 'aria-selected', 'aria-setsize', 'aria-posinset']
},
'rowgroup': {
'nameFrom': ['contents', 'author'],
'superclasses': ['structure'],
'mustContain': ['row'],
'scope': ['grid', 'table', 'treegrid'],
}, },
'rowgroup':
{'mustContain': ['row'], 'nameFrom': ['contents', 'author'], 'scope': ['grid'], 'superclasses': ['group']},
'rowheader': { 'rowheader': {
'nameFrom': ['contents', 'author'], 'nameFrom': ['contents', 'author'],
'scope': ['row'], 'scope': ['row'],
'superclasses': ['gridcell', 'sectionhead', 'widget'], 'superclasses': ['cell', 'gridcell', 'sectionhead'],
'supportedAttributes': ['aria-sort'] 'supportedAttributes': ['aria-sort'],
'nameRequired': true
}, },
'scrollbar': { 'scrollbar': {
'nameFrom': ['author'], 'nameFrom': ['author'],
'requiredAttributes': ['aria-controls', 'aria-orientation', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow'], 'requiredAttributes': ['aria-controls', 'aria-orientation', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow'],
'superclasses': ['input', 'range'] 'superclasses': ['range'],
'nameRequired': false,
'childrenPresentational': true,
'implicitValues': {'aria-orientation': 'vertical', 'aria-valuemin': '0', 'aria-valuemax': '100'}
}, },
'search': {'nameFrom': ['author'], 'superclasses': ['landmark']}, 'search': {'nameFrom': ['author'], 'superclasses': ['landmark']},
'section': { 'searchbox': {'nameFrom': ['author'], 'superclasses': ['textbox'], 'nameRequired': true},
'abstract': true, 'section': {'abstract': true, 'superclasses': ['structure'], 'supportedAttributes': ['aria-expanded']},
'nameFrom': ['contents', 'author'],
'superclasses': ['structure'],
'supportedAttributes': ['aria-expanded']
},
'sectionhead': { 'sectionhead': {
'abstract': true, 'abstract': true,
'nameFrom': ['contents', 'author'], 'nameFrom': ['contents', 'author'],
'superclasses': ['structure'], 'superclasses': ['structure'],
'supportedAttributes': ['aria-expanded'] 'supportedAttributes': ['aria-expanded']
}, },
'select': {'abstract': true, 'nameFrom': ['author'], 'superclasses': ['composite', 'group', 'input']}, 'select': {'abstract': true, 'nameFrom': ['author'], 'superclasses': ['composite', 'group']},
'separator': { 'separator': {
'nameFrom': ['author'], 'nameFrom': ['author'],
// TODO(aboxhall): superclass depends on focusability, but
// doesn't affect required/supported attributes
'superclasses': ['structure'], 'superclasses': ['structure'],
'supportedAttributes': ['aria-expanded', 'aria-orientation'] // TODO(aboxhall): required attributes depend on focusability
'supportedAttributes': ['aria-orientation', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow', 'aria-valuetext']
}, },
'slider': { 'slider': {
'nameFrom': ['author'], 'nameFrom': ['author'],
'requiredAttributes': ['aria-valuemax', 'aria-valuemin', 'aria-valuenow'], 'requiredAttributes': ['aria-valuemax', 'aria-valuemin', 'aria-valuenow'],
'superclasses': ['input', 'range'], 'superclasses': ['input', 'range'],
'supportedAttributes': ['aria-orientation'] 'supportedAttributes': ['aria-orientation'],
'nameRequired': true,
'childrenPresentational': true,
// TODO(aboxhall): aria-valuenow default is halfway between
// aria-valuemin and aria-valuemax
'implicitValues': {'aria-orientation': 'horizontal', 'aria-valuemin': '0', 'aria-valuemax': '100'}
}, },
'spinbutton': { 'spinbutton': {
'nameFrom': ['author'], 'nameFrom': ['author'],
'requiredAttributes': ['aria-valuemax', 'aria-valuemin', 'aria-valuenow'], 'requiredAttributes': ['aria-valuemax', 'aria-valuemin', 'aria-valuenow'],
'superclasses': ['input', 'range'], 'superclasses': ['composite', 'input', 'range'],
'supportedAttributes': ['aria-required'] 'supportedAttributes': ['aria-required', 'aria-readonly'],
'nameRequired': true,
'implicitValues': {'aria-valuenow': '0'}
},
'status': {
'nameFrom': ['author'],
'superclasses': ['section'],
'implicitValues': {'aria-live': 'polite', 'aria-atomic': 'true'}
}, },
'status': {'superclasses': ['region']},
'structure': {'abstract': true, 'superclasses': ['roletype']}, 'structure': {'abstract': true, 'superclasses': ['roletype']},
'switch': {
'nameFrom': ['contents', 'author'],
'superclasses': ['checkbox'],
'requiredAttributes': ['aria-checked'],
'nameRequired': true,
'childrenPresentational': true,
'implicitValues': {'aria-checked': 'false'}
},
'tab': { 'tab': {
'nameFrom': ['contents', 'author'], 'nameFrom': ['contents', 'author'],
'scope': ['tablist'], 'scope': ['tablist'],
'superclasses': ['sectionhead', 'widget'], 'superclasses': ['sectionhead', 'widget'],
'supportedAttributes': ['aria-selected'] 'supportedAttributes': ['aria-selected'],
'childrenPresentational': true,
'implicitValues': {'aria-selected': 'false'}
},
'table': {
'nameFrom': ['author'],
'superclasses': ['section'],
// TODO(aboxhall): Figure out how to express "rowgroup --> row"
'mustContain': ['row'],
'supportedAttributes': ['aria-colcount', 'aria-rowcount'],
'nameRequired': true
}, },
'tablist': { 'tablist': {
'mustContain': ['tab'],
'nameFrom': ['author'], 'nameFrom': ['author'],
'superclasses': ['composite', 'directory'], 'superclasses': ['composite'],
'supportedAttributes': ['aria-level'] 'mustContain': ['tab'],
'supportedAttributes': ['aria-level', 'aria-multiselectable', 'aria-orientation'],
'implicitValues': {'aria-orientation': 'horizontal'}
}, },
'tabpanel': {'nameFrom': ['author'], 'superclasses': ['region']}, 'tabpanel': {'nameFrom': ['author'], 'superclasses': ['section'], 'nameRequired': true},
'term': {'nameFrom': ['author'], 'superclasses': ['section']},
'textbox': { 'textbox': {
'nameFrom': ['author'], 'nameFrom': ['author'],
'superclasses': ['input'], 'superclasses': ['input'],
'supportedAttributes': 'supportedAttributes': [
['aria-activedescendant', 'aria-autocomplete', 'aria-multiline', 'aria-readonly', 'aria-required'] 'aria-activedescendant', 'aria-autocomplete', 'aria-multiline', 'aria-placeholder', 'aria-readonly',
'aria-required'
],
'nameRequired': true
}, },
'timer': {'nameFrom': ['author'], 'superclasses': ['status']}, 'timer': {'nameFrom': ['author'], 'superclasses': ['status']},
'toolbar': {'nameFrom': ['author'], 'superclasses': ['group']}, 'toolbar': {
'tooltip': {'superclasses': ['section']}, 'nameFrom': ['author'],
'superclasses': ['group'],
'supportedAttributes': ['aria-orientation'],
'implicitValues': {'aria-orientation': 'horizontal'}
},
'tooltip': {'nameFrom': ['contents', 'author'], 'superclasses': ['section'], 'nameRequired': true},
'tree': { 'tree': {
'mustContain': ['group', 'treeitem', 'treeitem'],
'nameFrom': ['author'], 'nameFrom': ['author'],
'mustContain': ['group', 'treeitem'],
'superclasses': ['select'], 'superclasses': ['select'],
'supportedAttributes': ['aria-multiselectable', 'aria-required'] 'supportedAttributes': ['aria-multiselectable', 'aria-required'],
'nameRequired': true,
'implicitValues': {'aria-orientation': 'vertical'}
},
'treegrid': {
// TODO(aboxhall): Figure out how to express "rowgroup --> row"
'mustContain': ['row'],
'nameFrom': ['author'],
'superclasses': ['grid', 'tree'],
'nameRequired': true
},
'treeitem': {
'nameFrom': ['contents', 'author'],
'scope': ['group', 'tree'],
'superclasses': ['listitem', 'option'],
'nameRequired': true
}, },
'treegrid': {'mustContain': ['row'], 'nameFrom': ['author'], 'superclasses': ['grid', 'tree']},
'treeitem':
{'nameFrom': ['contents', 'author'], 'scope': ['group', 'tree'], 'superclasses': ['listitem', 'option']},
'widget': {'abstract': true, 'superclasses': ['roletype']}, 'widget': {'abstract': true, 'superclasses': ['roletype']},
'window': { 'window': {
'abstract': true, 'abstract': true,
'nameFrom': ['author'], 'nameFrom': ['author'],
'superclasses': ['roletype'], 'superclasses': ['roletype'],
'supportedAttributes': ['aria-expanded'] 'supportedAttributes': ['aria-expanded', 'aria-modal']
} }
} }
}; };
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment