Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/accessibility/ARIAConfig.js

Issue 2962673003: [DevTools] Bring ARIA config up to date with ARIA 1.1 (Closed)
Patch Set: aleventhal comments Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
1 Accessibility.ARIAMetadata._config = { 5 Accessibility.ARIAMetadata._config = {
2 'attributes': { 6 'attributes': {
3 'aria-activedescendant': {'type': 'IDREF'}, 7 'aria-activedescendant': {'type': 'IDREF'},
4 'aria-atomic': {'default': 'false', 'type': 'boolean'}, 8 'aria-atomic': {'default': 'false', 'type': 'boolean'},
5 'aria-autocomplete': {'default': 'none', 'enum': ['inline', 'list', 'both', 'none'], 'type': 'token'}, 9 'aria-autocomplete': {'default': 'none', 'enum': ['inline', 'list', 'both', 'none'], 'type': 'token'},
6 'aria-busy': {'default': 'false', 'type': 'boolean'}, 10 'aria-busy': {'default': 'false', 'type': 'boolean'},
7 'aria-checked': {'default': 'undefined', 'enum': ['true', 'false', 'mixed', 'undefined'], 'type': 'token'}, 11 'aria-checked': {'default': 'undefined', 'enum': ['true', 'false', 'mixed', 'undefined'], 'type': 'token'},
12 'aria-colcount': {'type': 'integer'},
13 'aria-colindex': {'type': 'integer'},
14 'aria-colspan': {'type': 'integer'},
8 'aria-controls': {'type': 'IDREF_list'}, 15 'aria-controls': {'type': 'IDREF_list'},
16 'aria-current':
17 {'default': 'false', 'enum': ['page', 'step', 'location', 'date', 'time' , 'true', 'false'], 'type': 'token'},
9 'aria-describedby': {'type': 'IDREF_list'}, 18 'aria-describedby': {'type': 'IDREF_list'},
19 'aria-details': {'type': 'IDREF'},
10 'aria-disabled': {'default': 'false', 'type': 'boolean'}, 20 'aria-disabled': {'default': 'false', 'type': 'boolean'},
11 'aria-dropeffect': 21 'aria-dropeffect':
12 {'default': 'none', 'enum': ['copy', 'move', 'link', 'execute', 'popup', 'none'], 'type': 'token_list'}, 22 {'default': 'none', 'enum': ['copy', 'move', 'link', 'execute', 'popup', 'none'], 'type': 'token_list'},
23 'aria-errormessage': {'type': 'IDREF'},
13 'aria-expanded': {'default': 'undefined', 'enum': ['true', 'false', 'undefin ed'], 'type': 'token'}, 24 'aria-expanded': {'default': 'undefined', 'enum': ['true', 'false', 'undefin ed'], 'type': 'token'},
14 'aria-flowto': {'type': 'IDREF_list'}, 25 'aria-flowto': {'type': 'IDREF_list'},
15 'aria-grabbed': {'default': 'undefined', 'enum': ['true', 'false', 'undefine d'], 'type': 'token'}, 26 'aria-grabbed': {'default': 'undefined', 'enum': ['true', 'false', 'undefine d'], 'type': 'token'},
16 'aria-haspopup': {'default': 'false', 'type': 'boolean'}, 27 'aria-haspopup':
17 'aria-hidden': {'default': 'false', 'type': 'boolean'}, 28 {'default': 'false', 'enum': ['false', 'true', 'menu', 'listbox', 'tree' , 'grid', 'dialog'], 'type': 'token'},
29 'aria-hidden': {'default': 'undefined', 'enum': ['true', 'false', 'undefined '], 'type': 'token'},
18 'aria-invalid': {'default': 'false', 'enum': ['grammar', 'false', 'spelling' , 'true'], 'type': 'token'}, 30 'aria-invalid': {'default': 'false', 'enum': ['grammar', 'false', 'spelling' , 'true'], 'type': 'token'},
31 'aria-keyshortcuts': {'type': 'string'},
19 'aria-label': {'type': 'string'}, 32 'aria-label': {'type': 'string'},
20 'aria-labelledby': {'type': 'IDREF_list'}, 33 'aria-labelledby': {'type': 'IDREF_list'},
21 'aria-level': {'type': 'integer'}, 34 'aria-level': {'type': 'integer'},
22 'aria-live': {'default': 'off', 'enum': ['off', 'polite', 'assertive'], 'typ e': 'token'}, 35 'aria-live': {'default': 'off', 'enum': ['off', 'polite', 'assertive'], 'typ e': 'token'},
36 'aria-modal': {'default': 'false', 'type': 'boolean'},
23 'aria-multiline': {'default': 'false', 'type': 'boolean'}, 37 'aria-multiline': {'default': 'false', 'type': 'boolean'},
24 'aria-multiselectable': {'default': 'false', 'type': 'boolean'}, 38 'aria-multiselectable': {'default': 'false', 'type': 'boolean'},
25 'aria-orientation': {'default': 'vertical', 'enum': ['horizontal', 'vertical '], 'type': 'token'}, 39 'aria-orientation': {'default': 'undefined', 'enum': ['horizontal', 'undefin ed', 'vertical'], 'type': 'token'},
26 'aria-owns': {'type': 'IDREF_list'}, 40 'aria-owns': {'type': 'IDREF_list'},
41 'aria-placeholder': {'type': 'string'},
27 'aria-posinset': {'type': 'integer'}, 42 'aria-posinset': {'type': 'integer'},
28 'aria-pressed': {'default': 'undefined', 'enum': ['true', 'false', 'mixed', 'undefined'], 'type': 'token'}, 43 'aria-pressed': {'default': 'undefined', 'enum': ['true', 'false', 'mixed', 'undefined'], 'type': 'token'},
29 'aria-readonly': {'default': 'false', 'type': 'boolean'}, 44 'aria-readonly': {'default': 'false', 'type': 'boolean'},
30 'aria-relevant': 45 'aria-relevant':
31 {'default': 'additions text', 'enum': ['additions', 'removals', 'text', 'all'], 'type': 'token_list'}, 46 {'default': 'additions text', 'enum': ['additions', 'removals', 'text', 'all'], 'type': 'token_list'},
32 'aria-required': {'default': 'false', 'type': 'boolean'}, 47 'aria-required': {'default': 'false', 'type': 'boolean'},
48 'aria-roledescription': {'type': 'string'},
49 'aria-rowcount': {'type': 'integer'},
50 'aria-rowindex': {'type': 'integer'},
51 'aria-rowspan': {'type': 'integer'},
33 'aria-selected': {'default': 'undefined', 'enum': ['true', 'false', 'undefin ed'], 'type': 'token'}, 52 'aria-selected': {'default': 'undefined', 'enum': ['true', 'false', 'undefin ed'], 'type': 'token'},
34 'aria-setsize': {'type': 'integer'}, 53 'aria-setsize': {'type': 'integer'},
35 'aria-sort': {'default': 'none', 'enum': ['ascending', 'descending', 'none', 'other'], 'type': 'token'}, 54 'aria-sort': {'default': 'none', 'enum': ['ascending', 'descending', 'none', 'other'], 'type': 'token'},
36 'aria-valuemax': {'type': 'decimal'}, 55 'aria-valuemax': {'type': 'decimal'},
37 'aria-valuemin': {'type': 'decimal'}, 56 'aria-valuemin': {'type': 'decimal'},
38 'aria-valuenow': {'type': 'decimal'}, 57 'aria-valuenow': {'type': 'decimal'},
39 'aria-valuetext': {'type': 'string'}, 58 'aria-valuetext': {'type': 'string'},
40 'tabindex': {'type': 'integer'} 59 'tabindex': {'type': 'integer'}
41 }, 60 },
42 'roles': { 61 'roles': {
43 'alert': {'nameFrom': ['author'], 'superclasses': ['region']}, 62 'alert': {
44 'alertdialog': {'nameFrom': ['author'], 'superclasses': ['alert', 'dialog']} , 63 'nameFrom': ['author'],
45 'application': {'nameFrom': ['author'], 'superclasses': ['landmark']}, 64 'superclasses': ['section'],
46 'article': {'nameFrom': ['author'], 'superclasses': ['document', 'region']}, 65 'implicitValues': {'aria-live': 'assertive', 'aria-atomic': 'true'}
66 },
67 'alertdialog': {'nameFrom': ['author'], 'superclasses': ['alert', 'dialog'], 'nameRequired': true},
68 'application': {'nameFrom': ['author'], 'superclasses': ['structure'], 'name Required': true},
69 'article': {
70 'nameFrom': ['author'],
71 'superclasses': ['document'],
72 'supportedAttributes': ['aria-posinset', 'aria-setsize']
73 },
47 'banner': {'nameFrom': ['author'], 'superclasses': ['landmark']}, 74 'banner': {'nameFrom': ['author'], 'superclasses': ['landmark']},
48 'button': { 75 'button': {
49 'nameFrom': ['contents', 'author'], 76 'nameFrom': ['contents', 'author'],
50 'superclasses': ['command'], 77 'superclasses': ['command'],
51 'supportedAttributes': ['aria-expanded', 'aria-pressed'] 78 'supportedAttributes': ['aria-expanded', 'aria-pressed'],
79 'nameRequired': true,
80 'childrenPresentational': true
52 }, 81 },
53 'checkbox': {'nameFrom': ['contents', 'author'], 'requiredAttributes': ['ari a-checked'], 'superclasses': ['input']}, 82 'cell': {
83 'namefrom': ['contents', 'author'],
84 'scope': 'row',
85 'superclasses': ['section'],
86 'supportedAttributes': ['aria-colindex', 'aria-colspan', 'aria-rowindex', 'aria-rowspan']
87 },
88 'checkbox': {
89 'nameFrom': ['contents', 'author'],
90 'requiredAttributes': ['aria-checked'],
91 'superclasses': ['input'],
92 'supportedAttributes': ['aria-readonly'],
93 'nameRequired': true,
94 'implicitValues': {'aria-checked': false}
95 },
54 'columnheader': { 96 'columnheader': {
55 'nameFrom': ['contents', 'author'], 97 'nameFrom': ['contents', 'author'],
56 'scope': ['row'], 98 'scope': ['row'],
57 'superclasses': ['gridcell', 'sectionhead', 'widget'], 99 'superclasses': ['gridcell', 'sectionhead', 'widget'],
58 'supportedAttributes': ['aria-sort'] 100 'supportedAttributes': ['aria-sort'],
101 'nameRequired': true
59 }, 102 },
60 'combobox': { 103 'combobox': {
61 'mustContain': ['listbox', 'textbox'], 104 // TODO(aboxhall): Follow up with Nektarios and Aaron regarding role on te xtbox
105 'mustContain': ['textbox'],
62 'nameFrom': ['author'], 106 'nameFrom': ['author'],
63 'requiredAttributes': ['aria-expanded'], 107 'requiredAttributes': ['aria-controls', 'aria-expanded'],
64 'superclasses': ['select'], 108 'superclasses': ['select'],
65 'supportedAttributes': ['aria-autocomplete', 'aria-required'] 109 'supportedAttributes': ['aria-autocomplete', 'aria-readonly', 'aria-requir ed'],
110 'nameRequired': true,
111 'implicitValues': {'aria-expanded': 'false', 'aria-haspopup': 'listbox'}
66 }, 112 },
67 'command': {'abstract': true, 'nameFrom': ['author'], 'superclasses': ['widg et']}, 113 'command': {'abstract': true, 'nameFrom': ['author'], 'superclasses': ['widg et']},
68 'complementary': {'nameFrom': ['author'], 'superclasses': ['landmark']}, 114 'complementary': {'nameFrom': ['author'], 'superclasses': ['landmark']},
69 'composite': { 115 'composite': {
70 'abstract': true, 116 'abstract': true,
71 'nameFrom': ['author'], 117 'nameFrom': ['author'],
72 'superclasses': ['widget'], 118 'superclasses': ['widget'],
73 'supportedAttributes': ['aria-activedescendant'], 119 'supportedAttributes': ['aria-activedescendant'],
74 }, 120 },
75 'contentinfo': {'nameFrom': ['author'], 'superclasses': ['landmark']}, 121 'contentinfo': {'nameFrom': ['author'], 'superclasses': ['landmark']},
76 'definition': {'nameFrom': ['author'], 'superclasses': ['section']}, 122 'definition': {'nameFrom': ['author'], 'superclasses': ['section']},
77 'dialog': {'nameFrom': ['author'], 'superclasses': ['window']}, 123 'dialog': {'nameFrom': ['author'], 'superclasses': ['window'], 'nameRequired ': true},
78 'directory': {'nameFrom': ['contents', 'author'], 'superclasses': ['list']}, 124 'directory': {'nameFrom': ['author'], 'superclasses': ['list']},
79 'document': {'nameFrom': ['author'], 'superclasses': ['structure'], 'support edAttributes': ['aria-expanded']}, 125 'document': {
126 'nameFrom': ['author'],
127 'superclasses': ['structure'],
128 'supportedAttributes': ['aria-expanded'],
129 'nameRequired': false
130 },
131 'feed': {'nameFrom': ['author'], 'superclasses': ['list'], 'mustContain': [' article'], 'nameRequired': false},
132 'figure': {'namefrom': ['author'], 'superclasses': ['section'], 'nameRequire d': false},
80 'form': {'nameFrom': ['author'], 'superclasses': ['landmark']}, 133 'form': {'nameFrom': ['author'], 'superclasses': ['landmark']},
81 'grid': { 134 'grid': {
82 'mustContain': ['row', 'rowgroup', 'row'],
83 'nameFrom': ['author'], 135 'nameFrom': ['author'],
84 'superclasses': ['composite', 'region'], 136 'superclasses': ['composite', 'table'],
85 'supportedAttributes': ['aria-level', 'aria-multiselectable', 'aria-readon ly'] 137 // TODO(aboxhall): Figure out how to express "rowgroup --> row" here.
138 'mustContain': ['row'],
139 'supportedAttributes': ['aria-level', 'aria-multiselectable', 'aria-readon ly'],
140 'nameRequired': true
86 }, 141 },
87 'gridcell': { 142 'gridcell': {
88 'nameFrom': ['contents', 'author'], 143 'nameFrom': ['contents', 'author'],
89 'scope': ['row'], 144 'scope': ['row'],
90 'superclasses': ['section', 'widget'], 145 'superclasses': ['cell', 'widget'],
91 'supportedAttributes': ['aria-readonly', 'aria-required', 'aria-selected'] 146 'supportedAttributes': ['aria-readonly', 'aria-required', 'aria-selected'] ,
147 'nameRequired': true
92 }, 148 },
93 'group': {'nameFrom': ['author'], 'superclasses': ['section'], 'supportedAtt ributes': ['aria-activedescendant']}, 149 'group': {'nameFrom': ['author'], 'superclasses': ['section'], 'supportedAtt ributes': ['aria-activedescendant']},
94 'heading': {'superclasses': ['sectionhead'], 'supportedAttributes': ['aria-l evel']}, 150 'heading': {
95 'img': {'nameFrom': ['author'], 'superclasses': ['section']}, 151 'namefrom': ['contents', 'author'],
152 'superclasses': ['sectionhead'],
153 'supportedAttributes': ['aria-level'],
154 'nameRequired': true,
155 'implicitValues': {'aria-level': '2'}
156 },
157 'img': {'nameFrom': ['author'], 'superclasses': ['section'], 'nameRequired': true, 'childrenPresentational': true},
96 'input': {'abstract': true, 'nameFrom': ['author'], 'superclasses': ['widget ']}, 158 'input': {'abstract': true, 'nameFrom': ['author'], 'superclasses': ['widget ']},
97 'landmark': {'abstract': true, 'nameFrom': ['contents', 'author'], 'supercla sses': ['region']}, 159 'landmark': {'abstract': true, 'nameFrom': ['author'], 'superclasses': ['sec tion'], 'nameRequired': false},
98 'link': {'nameFrom': ['contents', 'author'], 'superclasses': ['command'], 's upportedAttributes': ['aria-expanded']}, 160 'link': {
99 'list': {'mustContain': ['group', 'listitem', 'listitem'], 'nameFrom': ['aut hor'], 'superclasses': ['region']}, 161 'nameFrom': ['contents', 'author'],
162 'superclasses': ['command'],
163 'supportedAttributes': ['aria-expanded'],
164 'nameRequired': true
165 },
166 'list': {
167 // TODO(aboxhall): Figure out how to express "group --> listitem"
168 'mustContain': ['listitem'],
169 'nameFrom': ['author'],
170 'superclasses': ['section'],
171 'implicitValues': {'aria-orientation': 'vertical'}
172 },
100 'listbox': { 173 'listbox': {
174 'nameFrom': ['author'],
175 'superclasses': ['select'],
101 'mustContain': ['option'], 176 'mustContain': ['option'],
102 'nameFrom': ['author'], 177 'supportedAttributes': ['aria-multiselectable', 'aria-readonly', 'aria-req uired'],
103 'superclasses': ['list', 'select'], 178 'nameRequired': true,
104 'supportedAttributes': ['aria-multiselectable', 'aria-required'] 179 'implicitValues': {'aria-orientation': 'vertical'},
105 }, 180 },
106 'listitem': { 181 'listitem': {
107 'nameFrom': ['contents', 'author'], 182 'nameFrom': ['author'],
108 'scope': ['list'],
109 'superclasses': ['section'], 183 'superclasses': ['section'],
184 'scope': ['group', 'list'],
110 'supportedAttributes': ['aria-level', 'aria-posinset', 'aria-setsize'] 185 'supportedAttributes': ['aria-level', 'aria-posinset', 'aria-setsize']
111 }, 186 },
112 'log': {'nameFrom': ['author'], 'superclasses': ['region']}, 187 'log': {
188 'nameFrom': ['author'],
189 'superclasses': ['section'],
190 'nameRequired': true,
191 'implicitValues': {'aria-live': 'polite'}
192 },
113 'main': {'nameFrom': ['author'], 'superclasses': ['landmark']}, 193 'main': {'nameFrom': ['author'], 'superclasses': ['landmark']},
114 'marquee': {'superclasses': ['section']}, 194 'marquee': {'nameFrom': ['author'], 'superclasses': ['section'], 'nameRequir ed': true},
115 'math': {'nameFrom': ['author'], 'superclasses': ['section']}, 195 'math': {
196 'nameFrom': ['author'],
197 'superclasses': ['section'],
198 'nameRequired': true,
199 // TODO(aboxhall/aleventhal): this is what the spec says, but seems wrong.
200 childrenPresentational: true
201 },
116 'menu': { 202 'menu': {
117 'mustContain': ['group', 'menuitemradio', 'menuitem', 'menuitemcheckbox', 'menuitemradio'], 203 'mustContain': ['group', 'menuitemradio', 'menuitem', 'menuitemcheckbox', 'menuitemradio'],
118 'nameFrom': ['author'], 204 'nameFrom': ['author'],
119 'superclasses': ['list', 'select'] 205 'superclasses': ['select'],
206 'implicitValues': {'aria-orientation': 'vertical'}
120 }, 207 },
121 'menubar': {'nameFrom': ['author'], 'superclasses': ['menu']}, 208 'menubar': {
122 'menuitem': {'nameFrom': ['contents', 'author'], 'scope': ['menu', 'menubar' ], 'superclasses': ['command']}, 209 'nameFrom': ['author'],
123 'menuitemcheckbox': 210 'superclasses': ['menu'],
124 {'nameFrom': ['contents', 'author'], 'scope': ['menu', 'menubar'], 'supe rclasses': ['checkbox', 'menuitem']}, 211 // TODO(aboxhall): figure out how to express "group --> {menuitem, menuite mradio, menuitemcheckbox}"
212 'mustContain': ['menuitem', 'menuitemradio', 'menuitemcheckbox'],
213 'implicitValues': {'aria-orientation': 'horizontal'}
214 },
215 'menuitem': {
216 'nameFrom': ['contents', 'author'],
217 'scope': ['group', 'menu', 'menubar'],
218 'superclasses': ['command'],
219 'nameRequired': true
220 },
221 'menuitemcheckbox': {
222 'nameFrom': ['contents', 'author'],
223 'scope': ['menu', 'menubar'],
224 'superclasses': ['checkbox', 'menuitem'],
225 'nameRequired': true,
226 'childrenPresentational': true,
227 'implicitValues': {'aria-checked': false}
228 },
125 'menuitemradio': { 229 'menuitemradio': {
126 'nameFrom': ['contents', 'author'], 230 'nameFrom': ['contents', 'author'],
127 'scope': ['menu', 'menubar'], 231 'scope': ['menu', 'menubar', 'group'],
128 'superclasses': ['menuitemcheckbox', 'radio'] 232 'superclasses': ['menuitemcheckbox', 'radio'],
233 'nameRequired': true,
234 'childrenPresentational': true,
235 'implicitValues': {'aria-checked': false}
129 }, 236 },
130 'navigation': {'nameFrom': ['author'], 'superclasses': ['landmark']}, 237 'navigation': {'nameFrom': ['author'], 'superclasses': ['landmark']},
238 'none': {'superclasses': ['structure']},
131 'note': {'nameFrom': ['author'], 'superclasses': ['section']}, 239 'note': {'nameFrom': ['author'], 'superclasses': ['section']},
132 'option': { 240 'option': {
133 'nameFrom': ['contents', 'author'], 241 'nameFrom': ['contents', 'author'],
242 'scope': ['listbox'],
134 'superclasses': ['input'], 243 'superclasses': ['input'],
135 'supportedAttributes': ['aria-checked', 'aria-posinset', 'aria-selected', 'aria-setsize'] 244 'requiredAttributes': ['aria-selected'],
245 'supportedAttributes': ['aria-checked', 'aria-posinset', 'aria-setsize'],
246 'nameRequired': true,
247 'childrenPresentational': true,
248 'implicitValues': {'aria-selected': 'false'}
136 }, 249 },
137 'presentation': {'superclasses': ['structure']}, 250 'presentation': {'superclasses': ['structure']},
138 'progressbar': {'nameFrom': ['author'], 'superclasses': ['range']}, 251 'progressbar':
139 'radio': {'nameFrom': ['contents', 'author'], 'superclasses': ['checkbox', ' option']}, 252 {'nameFrom': ['author'], 'superclasses': ['range'], 'nameRequired': true , 'childrenPresentational': true},
253 'radio': {
254 'nameFrom': ['contents', 'author'],
255 'superclasses': ['input'],
256 'requiredAttributes': ['aria-checked'],
257 'supportedAttributes': ['aria-posinset', 'aria-setsize'],
258 'nameRequired': true,
259 'childrenPresentational': true,
260 'implicitValues': {'aria-checked': 'false'}
261 },
140 'radiogroup': { 262 'radiogroup': {
141 'mustContain': ['radio'],
142 'nameFrom': ['author'], 263 'nameFrom': ['author'],
143 'superclasses': ['select'], 264 'superclasses': ['select'],
144 'supportedAttributes': ['aria-required'] 265 'mustContain': ['radio'],
266 'supportedAttributes': ['aria-readonly', 'aria-required'],
267 'nameRequired': true
145 }, 268 },
146 'range': { 269 'range': {
147 'abstract': true, 270 'abstract': true,
148 'nameFrom': ['author'], 271 'nameFrom': ['author'],
149 'superclasses': ['widget'], 272 'superclasses': ['widget'],
150 'supportedAttributes': ['aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext'] 273 'supportedAttributes': ['aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext']
151 }, 274 },
152 'region': {'nameFrom': ['author'], 'superclasses': ['section']}, 275 'region': {'nameFrom': ['author'], 'superclasses': ['landmark'], 'nameRequir ed': true},
153 'roletype': { 276 'roletype': {
154 'abstract': true, 277 'abstract': true,
155 'supportedAttributes': [ 278 'supportedAttributes': [
156 'aria-atomic', 'aria-busy', 'aria-controls', 'aria-describedby', 'aria-d isabled', 'aria-dropeffect', 279 'aria-atomic', 'aria-busy', 'aria-controls', 'aria-current ', 'aria-describedby', 'aria-details',
157 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-inv alid', 'aria-label', 'aria-labelledby', 280 'aria-disabled', 'aria-dropeffect', 'aria-errormessage', 'aria-flowto' , 'aria-grabbed', 'aria-haspopup',
158 'aria-live', 'aria-owns', 'aria-relevant' 281 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live',
282 'aria-owns', 'aria-relevant', 'aria-roledescription'
159 ] 283 ]
160 }, 284 },
161 'row': { 285 'row': {
162 'mustContain': ['columnheader', 'gridcell', 'rowheader'],
163 'nameFrom': ['contents', 'author'], 286 'nameFrom': ['contents', 'author'],
164 'scope': ['grid', 'rowgroup', 'treegrid'],
165 'superclasses': ['group', 'widget'], 287 'superclasses': ['group', 'widget'],
166 'supportedAttributes': ['aria-level', 'aria-selected'] 288 'mustContain': ['cell', 'columnheader', 'gridcell', 'rowheader'],
289 'scope': ['grid', 'rowgroup', 'table', 'treegrid'],
290 // TODO(aboxhall/aleventhal): This is not in the spec yet, but
291 // setsize and posinset are included here for treegrid
292 // purposes. Issue already filed on spec. Remove this comment
293 // when spec updated.
294 'supportedAttributes':
295 ['aria-colindex', 'aria-level', 'aria-rowindex', 'aria-selected', 'ari a-setsize', 'aria-posinset']
167 }, 296 },
168 'rowgroup': 297 'rowgroup': {
169 {'mustContain': ['row'], 'nameFrom': ['contents', 'author'], 'scope': [' grid'], 'superclasses': ['group']}, 298 'nameFrom': ['contents', 'author'],
299 'superclasses': ['structure'],
300 'mustContain': ['row'],
301 'scope': ['grid', 'table', 'treegrid'],
302 },
170 'rowheader': { 303 'rowheader': {
171 'nameFrom': ['contents', 'author'], 304 'nameFrom': ['contents', 'author'],
172 'scope': ['row'], 305 'scope': ['row'],
173 'superclasses': ['gridcell', 'sectionhead', 'widget'], 306 'superclasses': ['cell', 'gridcell', 'sectionhead'],
174 'supportedAttributes': ['aria-sort'] 307 'supportedAttributes': ['aria-sort'],
308 'nameRequired': true
175 }, 309 },
176 'scrollbar': { 310 'scrollbar': {
177 'nameFrom': ['author'], 311 'nameFrom': ['author'],
178 'requiredAttributes': ['aria-controls', 'aria-orientation', 'aria-valuemax ', 'aria-valuemin', 'aria-valuenow'], 312 'requiredAttributes': ['aria-controls', 'aria-orientation', 'aria-valuemax ', 'aria-valuemin', 'aria-valuenow'],
179 'superclasses': ['input', 'range'] 313 'superclasses': ['range'],
314 'nameRequired': false,
315 'childrenPresentational': true,
316 'implicitValues': {'aria-orientation': 'vertical', 'aria-valuemin': '0', ' aria-valuemax': '100'}
180 }, 317 },
181 'search': {'nameFrom': ['author'], 'superclasses': ['landmark']}, 318 'search': {'nameFrom': ['author'], 'superclasses': ['landmark']},
182 'section': { 319 'searchbox': {'nameFrom': ['author'], 'superclasses': ['textbox'], 'nameRequ ired': true},
183 'abstract': true, 320 'section': {'abstract': true, 'superclasses': ['structure'], 'supportedAttri butes': ['aria-expanded']},
184 'nameFrom': ['contents', 'author'],
185 'superclasses': ['structure'],
186 'supportedAttributes': ['aria-expanded']
187 },
188 'sectionhead': { 321 'sectionhead': {
189 'abstract': true, 322 'abstract': true,
190 'nameFrom': ['contents', 'author'], 323 'nameFrom': ['contents', 'author'],
191 'superclasses': ['structure'], 324 'superclasses': ['structure'],
192 'supportedAttributes': ['aria-expanded'] 325 'supportedAttributes': ['aria-expanded']
193 }, 326 },
194 'select': {'abstract': true, 'nameFrom': ['author'], 'superclasses': ['compo site', 'group', 'input']}, 327 'select': {'abstract': true, 'nameFrom': ['author'], 'superclasses': ['compo site', 'group']},
195 'separator': { 328 'separator': {
196 'nameFrom': ['author'], 329 'nameFrom': ['author'],
330 // TODO(aboxhall): superclass depends on focusability, but
331 // doesn't affect required/supported attributes
197 'superclasses': ['structure'], 332 'superclasses': ['structure'],
198 'supportedAttributes': ['aria-expanded', 'aria-orientation'] 333 // TODO(aboxhall): required attributes depend on focusability
334 'supportedAttributes': ['aria-orientation', 'aria-valuemin', 'aria-valuema x', 'aria-valuenow', 'aria-valuetext']
199 }, 335 },
200 'slider': { 336 'slider': {
201 'nameFrom': ['author'], 337 'nameFrom': ['author'],
202 'requiredAttributes': ['aria-valuemax', 'aria-valuemin', 'aria-valuenow'], 338 'requiredAttributes': ['aria-valuemax', 'aria-valuemin', 'aria-valuenow'],
203 'superclasses': ['input', 'range'], 339 'superclasses': ['input', 'range'],
204 'supportedAttributes': ['aria-orientation'] 340 'supportedAttributes': ['aria-orientation'],
341 'nameRequired': true,
342 'childrenPresentational': true,
343 // TODO(aboxhall): aria-valuenow default is halfway between
344 // aria-valuemin and aria-valuemax
345 'implicitValues': {'aria-orientation': 'horizontal', 'aria-valuemin': '0', 'aria-valuemax': '100'}
205 }, 346 },
206 'spinbutton': { 347 'spinbutton': {
207 'nameFrom': ['author'], 348 'nameFrom': ['author'],
208 'requiredAttributes': ['aria-valuemax', 'aria-valuemin', 'aria-valuenow'], 349 'requiredAttributes': ['aria-valuemax', 'aria-valuemin', 'aria-valuenow'],
209 'superclasses': ['input', 'range'], 350 'superclasses': ['composite', 'input', 'range'],
210 'supportedAttributes': ['aria-required'] 351 'supportedAttributes': ['aria-required', 'aria-readonly'],
352 'nameRequired': true,
353 'implicitValues': {'aria-valuenow': '0'}
211 }, 354 },
212 'status': {'superclasses': ['region']}, 355 'status': {
356 'nameFrom': ['author'],
357 'superclasses': ['section'],
358 'implicitValues': {'aria-live': 'polite', 'aria-atomic': 'true'}
359 },
213 'structure': {'abstract': true, 'superclasses': ['roletype']}, 360 'structure': {'abstract': true, 'superclasses': ['roletype']},
361 'switch': {
362 'nameFrom': ['contents', 'author'],
363 'superclasses': ['checkbox'],
364 'requiredAttributes': ['aria-checked'],
365 'nameRequired': true,
366 'childrenPresentational': true,
367 'implicitValues': {'aria-checked': 'false'}
368 },
214 'tab': { 369 'tab': {
215 'nameFrom': ['contents', 'author'], 370 'nameFrom': ['contents', 'author'],
216 'scope': ['tablist'], 371 'scope': ['tablist'],
217 'superclasses': ['sectionhead', 'widget'], 372 'superclasses': ['sectionhead', 'widget'],
218 'supportedAttributes': ['aria-selected'] 373 'supportedAttributes': ['aria-selected'],
374 'childrenPresentational': true,
375 'implicitValues': {'aria-selected': 'false'}
376 },
377 'table': {
378 'nameFrom': ['author'],
379 'superclasses': ['section'],
380 // TODO(aboxhall): Figure out how to express "rowgroup --> row"
381 'mustContain': ['row'],
382 'supportedAttributes': ['aria-colcount', 'aria-rowcount'],
383 'nameRequired': true
219 }, 384 },
220 'tablist': { 385 'tablist': {
386 'nameFrom': ['author'],
387 'superclasses': ['composite'],
221 'mustContain': ['tab'], 388 'mustContain': ['tab'],
222 'nameFrom': ['author'], 389 'supportedAttributes': ['aria-level', 'aria-multiselectable', 'aria-orient ation'],
223 'superclasses': ['composite', 'directory'], 390 'implicitValues': {'aria-orientation': 'horizontal'}
224 'supportedAttributes': ['aria-level']
225 }, 391 },
226 'tabpanel': {'nameFrom': ['author'], 'superclasses': ['region']}, 392 'tabpanel': {'nameFrom': ['author'], 'superclasses': ['section'], 'nameRequi red': true},
393 'term': {'nameFrom': ['author'], 'superclasses': ['section']},
227 'textbox': { 394 'textbox': {
228 'nameFrom': ['author'], 395 'nameFrom': ['author'],
229 'superclasses': ['input'], 396 'superclasses': ['input'],
230 'supportedAttributes': 397 'supportedAttributes': [
231 ['aria-activedescendant', 'aria-autocomplete', 'aria-multiline', 'aria -readonly', 'aria-required'] 398 'aria-activedescendant', 'aria-autocomplete', 'aria-multiline', 'aria-pl aceholder', 'aria-readonly',
399 'aria-required'
400 ],
401 'nameRequired': true
232 }, 402 },
233 'timer': {'nameFrom': ['author'], 'superclasses': ['status']}, 403 'timer': {'nameFrom': ['author'], 'superclasses': ['status']},
234 'toolbar': {'nameFrom': ['author'], 'superclasses': ['group']}, 404 'toolbar': {
235 'tooltip': {'superclasses': ['section']}, 405 'nameFrom': ['author'],
406 'superclasses': ['group'],
407 'supportedAttributes': ['aria-orientation'],
408 'implicitValues': {'aria-orientation': 'horizontal'}
409 },
410 'tooltip': {'nameFrom': ['contents', 'author'], 'superclasses': ['section'], 'nameRequired': true},
236 'tree': { 411 'tree': {
237 'mustContain': ['group', 'treeitem', 'treeitem'],
238 'nameFrom': ['author'], 412 'nameFrom': ['author'],
413 'mustContain': ['group', 'treeitem'],
239 'superclasses': ['select'], 414 'superclasses': ['select'],
240 'supportedAttributes': ['aria-multiselectable', 'aria-required'] 415 'supportedAttributes': ['aria-multiselectable', 'aria-required'],
416 'nameRequired': true,
417 'implicitValues': {'aria-orientation': 'vertical'}
241 }, 418 },
242 'treegrid': {'mustContain': ['row'], 'nameFrom': ['author'], 'superclasses': ['grid', 'tree']}, 419 'treegrid': {
243 'treeitem': 420 // TODO(aboxhall): Figure out how to express "rowgroup --> row"
244 {'nameFrom': ['contents', 'author'], 'scope': ['group', 'tree'], 'superc lasses': ['listitem', 'option']}, 421 'mustContain': ['row'],
422 'nameFrom': ['author'],
423 'superclasses': ['grid', 'tree'],
424 'nameRequired': true
425 },
426 'treeitem': {
427 'nameFrom': ['contents', 'author'],
428 'scope': ['group', 'tree'],
429 'superclasses': ['listitem', 'option'],
430 'nameRequired': true
431 },
245 'widget': {'abstract': true, 'superclasses': ['roletype']}, 432 'widget': {'abstract': true, 'superclasses': ['roletype']},
246 'window': { 433 'window': {
247 'abstract': true, 434 'abstract': true,
248 'nameFrom': ['author'], 435 'nameFrom': ['author'],
249 'superclasses': ['roletype'], 436 'superclasses': ['roletype'],
250 'supportedAttributes': ['aria-expanded'] 437 'supportedAttributes': ['aria-expanded', 'aria-modal']
251 } 438 }
252 } 439 }
253 }; 440 };
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698