| Index: third_party/WebKit/Source/devtools/front_end/accessibility/ARIAConfig.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/accessibility/ARIAConfig.js b/third_party/WebKit/Source/devtools/front_end/accessibility/ARIAConfig.js
|
| index 217f6e74df3b6fe9a87dbb442ee281500e6caf35..909b01367ae3a52577a6b004a434a87d5f3ccbe5 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/accessibility/ARIAConfig.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/accessibility/ARIAConfig.js
|
| @@ -1,3 +1,7 @@
|
| +// 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 = {
|
| 'attributes': {
|
| 'aria-activedescendant': {'type': 'IDREF'},
|
| @@ -5,31 +9,46 @@ Accessibility.ARIAMetadata._config = {
|
| 'aria-autocomplete': {'default': 'none', 'enum': ['inline', 'list', 'both', 'none'], 'type': 'token'},
|
| 'aria-busy': {'default': 'false', 'type': 'boolean'},
|
| '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-current':
|
| + {'default': 'false', 'enum': ['page', 'step', 'location', 'date', 'time', 'true', 'false'], 'type': 'token'},
|
| 'aria-describedby': {'type': 'IDREF_list'},
|
| + 'aria-details': {'type': 'IDREF'},
|
| 'aria-disabled': {'default': 'false', 'type': 'boolean'},
|
| 'aria-dropeffect':
|
| {'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-flowto': {'type': 'IDREF_list'},
|
| 'aria-grabbed': {'default': 'undefined', 'enum': ['true', 'false', 'undefined'], 'type': 'token'},
|
| - 'aria-haspopup': {'default': 'false', 'type': 'boolean'},
|
| - 'aria-hidden': {'default': 'false', 'type': 'boolean'},
|
| + 'aria-haspopup':
|
| + {'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-keyshortcuts': {'type': 'string'},
|
| 'aria-label': {'type': 'string'},
|
| 'aria-labelledby': {'type': 'IDREF_list'},
|
| 'aria-level': {'type': 'integer'},
|
| 'aria-live': {'default': 'off', 'enum': ['off', 'polite', 'assertive'], 'type': 'token'},
|
| + 'aria-modal': {'default': 'false', 'type': 'boolean'},
|
| 'aria-multiline': {'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-placeholder': {'type': 'string'},
|
| 'aria-posinset': {'type': 'integer'},
|
| 'aria-pressed': {'default': 'undefined', 'enum': ['true', 'false', 'mixed', 'undefined'], 'type': 'token'},
|
| 'aria-readonly': {'default': 'false', 'type': 'boolean'},
|
| 'aria-relevant':
|
| {'default': 'additions text', 'enum': ['additions', 'removals', 'text', 'all'], 'type': 'token_list'},
|
| '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-setsize': {'type': 'integer'},
|
| 'aria-sort': {'default': 'none', 'enum': ['ascending', 'descending', 'none', 'other'], 'type': 'token'},
|
| @@ -40,29 +59,56 @@ Accessibility.ARIAMetadata._config = {
|
| 'tabindex': {'type': 'integer'}
|
| },
|
| 'roles': {
|
| - 'alert': {'nameFrom': ['author'], 'superclasses': ['region']},
|
| - 'alertdialog': {'nameFrom': ['author'], 'superclasses': ['alert', 'dialog']},
|
| - 'application': {'nameFrom': ['author'], 'superclasses': ['landmark']},
|
| - 'article': {'nameFrom': ['author'], 'superclasses': ['document', 'region']},
|
| + 'alert': {
|
| + 'nameFrom': ['author'],
|
| + 'superclasses': ['section'],
|
| + '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']},
|
| 'button': {
|
| 'nameFrom': ['contents', 'author'],
|
| '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': {
|
| 'nameFrom': ['contents', 'author'],
|
| 'scope': ['row'],
|
| 'superclasses': ['gridcell', 'sectionhead', 'widget'],
|
| - 'supportedAttributes': ['aria-sort']
|
| + 'supportedAttributes': ['aria-sort'],
|
| + 'nameRequired': true
|
| },
|
| 'combobox': {
|
| - 'mustContain': ['listbox', 'textbox'],
|
| + // TODO(aboxhall): Follow up with Nektarios and Aaron regarding role on textbox
|
| + 'mustContain': ['textbox'],
|
| 'nameFrom': ['author'],
|
| - 'requiredAttributes': ['aria-expanded'],
|
| + 'requiredAttributes': ['aria-controls', 'aria-expanded'],
|
| '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']},
|
| 'complementary': {'nameFrom': ['author'], 'superclasses': ['landmark']},
|
| @@ -74,74 +120,151 @@ Accessibility.ARIAMetadata._config = {
|
| },
|
| 'contentinfo': {'nameFrom': ['author'], 'superclasses': ['landmark']},
|
| 'definition': {'nameFrom': ['author'], 'superclasses': ['section']},
|
| - 'dialog': {'nameFrom': ['author'], 'superclasses': ['window']},
|
| - 'directory': {'nameFrom': ['contents', 'author'], 'superclasses': ['list']},
|
| - 'document': {'nameFrom': ['author'], 'superclasses': ['structure'], 'supportedAttributes': ['aria-expanded']},
|
| + 'dialog': {'nameFrom': ['author'], 'superclasses': ['window'], 'nameRequired': true},
|
| + 'directory': {'nameFrom': ['author'], 'superclasses': ['list']},
|
| + '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']},
|
| 'grid': {
|
| - 'mustContain': ['row', 'rowgroup', 'row'],
|
| 'nameFrom': ['author'],
|
| - 'superclasses': ['composite', 'region'],
|
| - 'supportedAttributes': ['aria-level', 'aria-multiselectable', 'aria-readonly']
|
| + 'superclasses': ['composite', 'table'],
|
| + // TODO(aboxhall): Figure out how to express "rowgroup --> row" here.
|
| + 'mustContain': ['row'],
|
| + 'supportedAttributes': ['aria-level', 'aria-multiselectable', 'aria-readonly'],
|
| + 'nameRequired': true
|
| },
|
| 'gridcell': {
|
| 'nameFrom': ['contents', 'author'],
|
| 'scope': ['row'],
|
| - 'superclasses': ['section', 'widget'],
|
| - 'supportedAttributes': ['aria-readonly', 'aria-required', 'aria-selected']
|
| + 'superclasses': ['cell', 'widget'],
|
| + 'supportedAttributes': ['aria-readonly', 'aria-required', 'aria-selected'],
|
| + 'nameRequired': true
|
| },
|
| 'group': {'nameFrom': ['author'], 'superclasses': ['section'], 'supportedAttributes': ['aria-activedescendant']},
|
| - 'heading': {'superclasses': ['sectionhead'], 'supportedAttributes': ['aria-level']},
|
| - 'img': {'nameFrom': ['author'], 'superclasses': ['section']},
|
| + 'heading': {
|
| + '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']},
|
| - 'landmark': {'abstract': true, 'nameFrom': ['contents', 'author'], 'superclasses': ['region']},
|
| - 'link': {'nameFrom': ['contents', 'author'], 'superclasses': ['command'], 'supportedAttributes': ['aria-expanded']},
|
| - 'list': {'mustContain': ['group', 'listitem', 'listitem'], 'nameFrom': ['author'], 'superclasses': ['region']},
|
| + 'landmark': {'abstract': true, 'nameFrom': ['author'], 'superclasses': ['section'], 'nameRequired': false},
|
| + 'link': {
|
| + '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': {
|
| - 'mustContain': ['option'],
|
| 'nameFrom': ['author'],
|
| - 'superclasses': ['list', 'select'],
|
| - 'supportedAttributes': ['aria-multiselectable', 'aria-required']
|
| + 'superclasses': ['select'],
|
| + 'mustContain': ['option'],
|
| + 'supportedAttributes': ['aria-multiselectable', 'aria-readonly', 'aria-required'],
|
| + 'nameRequired': true,
|
| + 'implicitValues': {'aria-orientation': 'vertical'},
|
| },
|
| 'listitem': {
|
| - 'nameFrom': ['contents', 'author'],
|
| - 'scope': ['list'],
|
| + 'nameFrom': ['author'],
|
| 'superclasses': ['section'],
|
| + 'scope': ['group', 'list'],
|
| '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']},
|
| - 'marquee': {'superclasses': ['section']},
|
| - 'math': {'nameFrom': ['author'], 'superclasses': ['section']},
|
| + 'marquee': {'nameFrom': ['author'], 'superclasses': ['section'], 'nameRequired': true},
|
| + 'math': {
|
| + 'nameFrom': ['author'],
|
| + 'superclasses': ['section'],
|
| + 'nameRequired': true,
|
| + // TODO(aboxhall/aleventhal): this is what the spec says, but seems wrong.
|
| + childrenPresentational: true
|
| + },
|
| 'menu': {
|
| 'mustContain': ['group', 'menuitemradio', 'menuitem', 'menuitemcheckbox', 'menuitemradio'],
|
| 'nameFrom': ['author'],
|
| - 'superclasses': ['list', 'select']
|
| + 'superclasses': ['select'],
|
| + 'implicitValues': {'aria-orientation': 'vertical'}
|
| },
|
| - 'menubar': {'nameFrom': ['author'], 'superclasses': ['menu']},
|
| - 'menuitem': {'nameFrom': ['contents', 'author'], 'scope': ['menu', 'menubar'], 'superclasses': ['command']},
|
| - 'menuitemcheckbox':
|
| - {'nameFrom': ['contents', 'author'], 'scope': ['menu', 'menubar'], 'superclasses': ['checkbox', 'menuitem']},
|
| - 'menuitemradio': {
|
| + 'menubar': {
|
| + 'nameFrom': ['author'],
|
| + 'superclasses': ['menu'],
|
| + // TODO(aboxhall): figure out how to express "group --> {menuitem, menuitemradio, menuitemcheckbox}"
|
| + 'mustContain': ['menuitem', 'menuitemradio', 'menuitemcheckbox'],
|
| + 'implicitValues': {'aria-orientation': 'horizontal'}
|
| + },
|
| + 'menuitem': {
|
| + 'nameFrom': ['contents', 'author'],
|
| + 'scope': ['group', 'menu', 'menubar'],
|
| + 'superclasses': ['command'],
|
| + 'nameRequired': true
|
| + },
|
| + 'menuitemcheckbox': {
|
| 'nameFrom': ['contents', 'author'],
|
| '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']},
|
| + 'none': {'superclasses': ['structure']},
|
| 'note': {'nameFrom': ['author'], 'superclasses': ['section']},
|
| 'option': {
|
| 'nameFrom': ['contents', 'author'],
|
| + 'scope': ['listbox'],
|
| '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']},
|
| - 'progressbar': {'nameFrom': ['author'], 'superclasses': ['range']},
|
| - 'radio': {'nameFrom': ['contents', 'author'], 'superclasses': ['checkbox', 'option']},
|
| + 'progressbar':
|
| + {'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': {
|
| - 'mustContain': ['radio'],
|
| 'nameFrom': ['author'],
|
| 'superclasses': ['select'],
|
| - 'supportedAttributes': ['aria-required']
|
| + 'mustContain': ['radio'],
|
| + 'supportedAttributes': ['aria-readonly', 'aria-required'],
|
| + 'nameRequired': true
|
| },
|
| 'range': {
|
| 'abstract': true,
|
| @@ -149,105 +272,169 @@ Accessibility.ARIAMetadata._config = {
|
| 'superclasses': ['widget'],
|
| 'supportedAttributes': ['aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext']
|
| },
|
| - 'region': {'nameFrom': ['author'], 'superclasses': ['section']},
|
| + 'region': {'nameFrom': ['author'], 'superclasses': ['landmark'], 'nameRequired': true},
|
| 'roletype': {
|
| 'abstract': true,
|
| 'supportedAttributes': [
|
| - 'aria-atomic', 'aria-busy', 'aria-controls', 'aria-describedby', 'aria-disabled', 'aria-dropeffect',
|
| - 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-label', 'aria-labelledby',
|
| - 'aria-live', 'aria-owns', 'aria-relevant'
|
| + 'aria-atomic', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details',
|
| + 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-flowto', 'aria-grabbed', 'aria-haspopup',
|
| + 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live',
|
| + 'aria-owns', 'aria-relevant', 'aria-roledescription'
|
| ]
|
| },
|
| 'row': {
|
| - 'mustContain': ['columnheader', 'gridcell', 'rowheader'],
|
| 'nameFrom': ['contents', 'author'],
|
| - 'scope': ['grid', 'rowgroup', 'treegrid'],
|
| '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': {
|
| 'nameFrom': ['contents', 'author'],
|
| 'scope': ['row'],
|
| - 'superclasses': ['gridcell', 'sectionhead', 'widget'],
|
| - 'supportedAttributes': ['aria-sort']
|
| + 'superclasses': ['cell', 'gridcell', 'sectionhead'],
|
| + 'supportedAttributes': ['aria-sort'],
|
| + 'nameRequired': true
|
| },
|
| 'scrollbar': {
|
| 'nameFrom': ['author'],
|
| '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']},
|
| - 'section': {
|
| - 'abstract': true,
|
| - 'nameFrom': ['contents', 'author'],
|
| - 'superclasses': ['structure'],
|
| - 'supportedAttributes': ['aria-expanded']
|
| - },
|
| + 'searchbox': {'nameFrom': ['author'], 'superclasses': ['textbox'], 'nameRequired': true},
|
| + 'section': {'abstract': true, 'superclasses': ['structure'], 'supportedAttributes': ['aria-expanded']},
|
| 'sectionhead': {
|
| 'abstract': true,
|
| 'nameFrom': ['contents', 'author'],
|
| 'superclasses': ['structure'],
|
| 'supportedAttributes': ['aria-expanded']
|
| },
|
| - 'select': {'abstract': true, 'nameFrom': ['author'], 'superclasses': ['composite', 'group', 'input']},
|
| + 'select': {'abstract': true, 'nameFrom': ['author'], 'superclasses': ['composite', 'group']},
|
| 'separator': {
|
| 'nameFrom': ['author'],
|
| + // TODO(aboxhall): superclass depends on focusability, but
|
| + // doesn't affect required/supported attributes
|
| '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': {
|
| 'nameFrom': ['author'],
|
| 'requiredAttributes': ['aria-valuemax', 'aria-valuemin', 'aria-valuenow'],
|
| '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': {
|
| 'nameFrom': ['author'],
|
| 'requiredAttributes': ['aria-valuemax', 'aria-valuemin', 'aria-valuenow'],
|
| - 'superclasses': ['input', 'range'],
|
| - 'supportedAttributes': ['aria-required']
|
| + 'superclasses': ['composite', 'input', 'range'],
|
| + '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']},
|
| + 'switch': {
|
| + 'nameFrom': ['contents', 'author'],
|
| + 'superclasses': ['checkbox'],
|
| + 'requiredAttributes': ['aria-checked'],
|
| + 'nameRequired': true,
|
| + 'childrenPresentational': true,
|
| + 'implicitValues': {'aria-checked': 'false'}
|
| + },
|
| 'tab': {
|
| 'nameFrom': ['contents', 'author'],
|
| 'scope': ['tablist'],
|
| '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': {
|
| - 'mustContain': ['tab'],
|
| 'nameFrom': ['author'],
|
| - 'superclasses': ['composite', 'directory'],
|
| - 'supportedAttributes': ['aria-level']
|
| + 'superclasses': ['composite'],
|
| + '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': {
|
| 'nameFrom': ['author'],
|
| 'superclasses': ['input'],
|
| - 'supportedAttributes':
|
| - ['aria-activedescendant', 'aria-autocomplete', 'aria-multiline', 'aria-readonly', 'aria-required']
|
| + 'supportedAttributes': [
|
| + 'aria-activedescendant', 'aria-autocomplete', 'aria-multiline', 'aria-placeholder', 'aria-readonly',
|
| + 'aria-required'
|
| + ],
|
| + 'nameRequired': true
|
| },
|
| 'timer': {'nameFrom': ['author'], 'superclasses': ['status']},
|
| - 'toolbar': {'nameFrom': ['author'], 'superclasses': ['group']},
|
| - 'tooltip': {'superclasses': ['section']},
|
| + 'toolbar': {
|
| + 'nameFrom': ['author'],
|
| + 'superclasses': ['group'],
|
| + 'supportedAttributes': ['aria-orientation'],
|
| + 'implicitValues': {'aria-orientation': 'horizontal'}
|
| + },
|
| + 'tooltip': {'nameFrom': ['contents', 'author'], 'superclasses': ['section'], 'nameRequired': true},
|
| 'tree': {
|
| - 'mustContain': ['group', 'treeitem', 'treeitem'],
|
| 'nameFrom': ['author'],
|
| + 'mustContain': ['group', 'treeitem'],
|
| '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']},
|
| 'window': {
|
| 'abstract': true,
|
| 'nameFrom': ['author'],
|
| 'superclasses': ['roletype'],
|
| - 'supportedAttributes': ['aria-expanded']
|
| + 'supportedAttributes': ['aria-expanded', 'aria-modal']
|
| }
|
| }
|
| };
|
|
|