index.html
315 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>WAI-ARIA 1.0 User Agent Implementation Guide</title><link href="spec.css" rel="stylesheet" type="text/css"/><link href="http://www.w3.org/StyleSheets/TR/W3C-WD" rel="stylesheet" type="text/css"/></head><body>
<p align="center">[<a href="#toc">contents</a>]</p>
<div class="head"> <a href="http://www.w3.org/"><img alt="W3C" height="48" src="http://www.w3.org/Icons/w3c_home" width="72"/></a>
<h1><abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> 1.0 User Agent Implementation Guide</h1>
<h2 id="subhead">A user agent developer's guide to understanding and implementing Accessible Rich Internet Applications</h2>
<h2 class="maturity">W3C Working Draft 10 January 2012</h2>
<dl><dt>This version:</dt><dd><a href="http://www.w3.org/TR/2012/WD-wai-aria-implementation-20120110/">http://www.w3.org/TR/2012/WD-wai-aria-implementation-20120110/</a></dd><dt>Latest version:</dt><dd> <a href="http://www.w3.org/TR/wai-aria-implementation/">http://www.w3.org/TR/wai-aria-implementation/</a> </dd><dt>Previous version:</dt><dd><a href="http://www.w3.org/TR/2010/WD-wai-aria-implementation-20100916/">http://www.w3.org/TR/2010/WD-wai-aria-implementation-20100916/</a></dd><dt>Editors:</dt><dd>Andi Snow-Weaver, IBM<br clear="none"/>
Michael Cooper, W3C </dd><dt>Previous Editors:</dt><dd>Aaron Leventhal (until January 2009 while at IBM)</dd></dl>
<p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2012 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.eu/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p>
<hr title="Separator from Header"/>
</div>
<div>
<h2><a id="abstract" name="abstract">Abstract</a></h2>
<p>This document describes how <a href="#def_useragent" class="termref">user agents</a> should support keyboard navigation and respond to <a href="#def_role" class="termref">roles</a>, states, and <a href="#def_property" class="termref">properties</a> provided in Web content via <cite><a href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/"><abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr></a></cite> [<cite><a href="#ref_ARIA">ARIA</a></cite>]. These features are used by authors creating accessible rich internet applications. Users often access the content using assistive technologies that rely on platform <a href="#def_accessibility_api" class="termref">accessibility <abbr title="Application Programming Interfaces">APIs</abbr></a> to obtain and interact with information from the page. The <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> User Agent Implementation Guide defines how implementations should expose content to accessibility <abbr title="application programing interfaces">APIs</abbr>, helping to ensure that this information appears in a manner consistent with author intent. This document is part of the <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> suite described in the <a href="http://www.w3.org/WAI/intro/aria.php"><abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> Overview</a>.</p>
</div>
<div><a id="sotd" name="sotd"></a>
<h2>Status of this Document</h2>
<p><em>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/">W3C technical reports index</a> at http://www.w3.org/TR/.</em></p>
<p>This is a <a href="http://www.w3.org/2005/10/Process-20051014/tr#last-call">Last Call Working Draft</a> by the <a href="http://www.w3.org/WAI/PF/">Protocols & Formats Working
Group</a> of the <a href="http://www.w3.org/WAI/">Web Accessibility
Initiative</a>. It supports the <cite><a href="http://www.w3.org/TR/2010/WD-wai-aria-20100916/">Accessible Rich
Internet Applications (WAI-ARIA)</a></cite> [<cite><a href="#ref_ARIA">ARIA</a></cite>] Candidate Recommendation, providing information about
how user agents should expose ARIA features to platform <a href="#def_accessibility_api" class="termref">accessibility <abbr title="Application Programming Interfaces">APIs</abbr></a>. The
accessibility API relationships defined here are important to WAI-ARIA,
and this document is expected to be tested as part of the testing effort
for WAI-ARIA.</p>
<p>This version reflects continued analysis and engineering of expected user
agent and <a href="#def_accessibility_api" class="termref">accessibility
<abbr title="Application Programming Interface">API</abbr></a> behavior.
It also incorporates changes made in response to public comments
received on the previous version. A <a href="http://www.w3.org/WAI/PF/aria-implementation/change-history">history of changes to <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> 1.0 User
Agent Implementation Guide</a> is available. Refer to the <a href="http://www.w3.org/WAI/PF/comments/actions?document_version_id=12">summary of actions made in response to comments on the previous
draft</a> and the <a href="http://www.w3.org/WAI/PF/comments/issue_disposition_report?document_version_id=12">issue disposition report for the previous draft</a>. </p>
<p>This document includes general information for user agents to handle <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> roles, states, and properties. It also includes host-language specific requirements where necessary to complete the accessibility model. In the future, the PFWG may split out technology-specific versions of this guide, moving some requirements out but retaining this document as the general ARIA implementation guide.</p>
<p>Feedback on the information provided here is essential to the ultimate success of Rich Internet Applications that afford full access to their information and operations. The PFWG asks in particular:</p>
<ul><li> Are the accessibility <abbr title="Application Programming Interfaces">APIs</abbr> in common use today covered?</li><li> Are all the features needed by accessibility <abbr title="Application Programming Interfaces">APIs</abbr> to make rich content accessible addressed?</li><li>Is the relationship of this document to the <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> specification clear? </li></ul>
<p>Start with the <a href="http://www.w3.org/WAI/PF/comments/instructions">instructions for commenting</a> page to submit comments (preferred), or
send email to <a href="mailto:public-pfwg-comments@w3.org">public-pfwg-comments@w3.org</a> (<a href="http://lists.w3.org/Archives/Public/public-pfwg-comments/">comment
archive</a>). Comments should be made by <strong>17 February
2012</strong>. In-progress updates to the document may be viewed in the
<a href="/WAI/PF/aria-implementation/">publicly visible editors'
draft</a>.</p>
<p>Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.</p>
<p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 W3C Patent Policy</a>.
W3C maintains a <a href="http://www.w3.org/2004/01/pp-impl/32212/status" rel="disclosure">public list of any patent disclosures</a> made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section 6 of the W3C Patent Policy</a>.</p>
<p>The disclosure obligations of the Participants of this group are described in the <a href="http://www.w3.org/WAI/PF/charter201006#patentpolicy">charter</a>.</p>
</div>
<div><a id="toc" name="toc"></a>
<h2>Table of Contents</h2>
<ol class="toc"><li>1. <a href="#intro">Introduction</a><ol class="toc"><li>1.1. <a href="#intro_aapi">Accessibility APIs</a></li><li>1.2. <a href="#intro_treetypes">The Accessibility Tree and the DOM Tree</a></li></ol></li><li>2. <a href="#normative">Normative User Agent Implementation Requirements for WAI-ARIA</a></li><li>3. <a href="#terms">Important Terms</a></li><li>4. <a href="#keyboard-focus">Supporting Keyboard Navigation</a><ol class="toc"><li>4.1. <a href="#focus_state_event_table">Focus States and Events Table</a></li><li>4.2. <a href="#keyboard-focus_tabindex">Controlling focus with tabindex</a></li><li>4.3. <a href="#keyboard-focus_aria-activedescendant">Controlling focus with aria-activedescendant</a></li><li>4.4. <a href="#keyboard-focus_at">Handling focus changes from the Assistive Technology</a></li></ol></li><li>5. <a href="#mapping">Mapping WAI-ARIA to Accessibility APIs</a><ol class="toc"><li>5.1. <a href="#mapping_general">General rules for exposing WAI-ARIA semantics</a><ol class="toc"><li>5.1.1. <a href="#include_elements">Including Elements in the Accessibility Tree</a></li><li>5.1.2. <a href="#exclude_elements">Excluding Elements from the Accessibility Tree</a></li><li>5.1.3. <a href="#notify_state_changes">Notification of State Changes</a></li></ol></li><li>5.2. <a href="#mapping_conflicts">Conflicts between native markup semantics and WAI-ARIA</a></li><li>5.3. <a href="#mapping_nodirect">Exposing attributes that do not directly map to accessibility API properties</a></li><li>5.4. <a href="#mapping_role">Role mapping</a><ol class="toc"><li>5.4.1. <a href="#mapping_role_table">Role Mapping Table</a></li></ol></li><li>5.5. <a href="#mapping_state-property">State and Property Mapping</a><ol class="toc"><li>5.5.1. <a href="#mapping_state-property_table">State and Property Mapping Table</a></li></ol></li><li>5.6. <a href="#mapping_additional">Special Processing Requiring Additional Computation</a><ol class="toc"><li>5.6.1. <a href="#mapping_additional_nd">Name and Description</a></li><li>5.6.2. <a href="#mapping_additional_widget-value">Widget Values</a></li><li>5.6.3. <a href="#mapping_additional_relations">Relations</a></li><li>5.6.4. <a href="#mapping_additional_position">Group Position</a></li></ol></li><li>5.7. <a href="#mapping_actions">Actions</a></li><li>5.8. <a href="#mapping_events">Events</a><ol class="toc"><li>5.8.1. <a href="#mapping_events_state-change">State and Property Change Events</a></li><li>5.8.2. <a href="#mapping_events_visibility">Changes to document content or node visibility</a></li><li>5.8.3. <a href="#mapping_events_selection">Selection</a></li><li>5.8.4. <a href="#mapping_events_menus">Special Events for Menus</a></li></ol></li></ol></li><li>6. <a href="#document-handling">Special Document Handling Procedures</a><ol class="toc"><li>6.1. <a href="#document-handling_css-selectors">CSS Selectors</a></li><li>6.2. <a href="#document-handling_author-errors">Author Errors</a></li></ol></li><li>7. <a href="#appendices">Appendices</a><ol class="toc"><li>7.1. <a href="#references">References</a><ol class="toc"><li>7.1.1. <a href="#references_normative">Normative References</a></li><li>7.1.2. <a href="#references_informative">Informative References</a></li></ol></li><li>7.2. <a href="#acknowledgements">Acknowledgments</a><ol class="toc"><li>7.2.1. <a href="#ack_group">Participants in the PFWG at the time of publication</a></li><li>7.2.2. <a href="#ack_others">Other previously active PFWG participants and other contributors to the Accessible Rich Internet Applications specification</a></li><li>7.2.3. <a href="#ack_funders">Enabling funders</a></li></ol></li></ol></li></ol>
</div>
<div class="section" id="intro">
<h2><span class="tocnum">1. </span> Introduction</h2><p class="permalink"><a href="#intro" title="Permalink for Introduction">#</a></p>
<p>This section is <a class="termref" href="#def_informative">informative</a>.</p>
<p>In traditional desktop graphical user interface (GUI) applications, components of the user interface (UI) are displayed when needed and hidden when not needed based on user interactions. <a class="termref" href="#def_accessibility_api">Accessibility application programming interfaces (APIs)</a> are used to communicate <a href="#def_semantics" class="termref">semantic</a> information about the user interface to <a class="termref" href="#def_at">assistive technology</a> software used by people with disabilities. These <abbr title="application programming interfaces">APIs</abbr> constitute a contract between applications and assistive technologies, such as screen readers, magnifiers, alternate input devices, and speech command and control, to enable them to access the appropriate semantics needed to produce a usable alternative to interactive applications. For example, screen reading software for blind users can determine whether a particular <abbr title="user interface">UI</abbr> component is a menu, button, text field, list box, etc.</p>
<p>In traditional static Web pages, the <abbr title="Hypertext Markup Language">HTML</abbr> <a class="termref" href="#def_element">elements</a> provided the necessary semantic information. The <a href="#def_useragent" class="termref">user agent</a> provides keyboard navigation but only to the <abbr title="Hypertext Markup Language">HTML</abbr> elements that are known to be interactive, specifically links and form elements. Assistive technologies obtain the semantic information from the Document Object Model (<abbr title="Document Object Model">DOM</abbr>) or, in the case of links and form elements, through the Accessibility <abbr title="Application Programming Interface">API</abbr>. In both cases, the assistive technology expects that nothing changes until a new page is loaded based on a user action. </p>
<p>Yet technologies such as JavaScript, Ajax, and <abbr title="cascading style sheets">CSS</abbr> have enabled Web pages to look and behave more like interactive desktop <abbr title="graphical user interface">GUI</abbr> applications, without the need to reload the page with each user interaction. Developers can now re-purpose <abbr title="Hypertext Markup Language">HTML</abbr> elements into <abbr title="user interface">UI</abbr> components not previously defined in <abbr title="Hypertext Markup Language">HTML</abbr>. For example, Javascript can be used with <abbr title="cascading style sheets">CSS</abbr> to modify a <code><div></code> element based on user interactions to make it look and behave like a popup menu. Unfortunately, the <code><div></code> element does not provide the author with a vehicle to add semantic metadata that can be exposed through the <abbr title="Document Object Model">DOM</abbr> and mapped to Accessibility <abbr title="Application Programming Interfaces">APIs</abbr>. These accessibility deficiencies in traditional markup render rich Internet applications unusable by people who use assistive technologies or who rely on keyboard navigation.</p>
<p>The <abbr title="Worldwide Web Consortium">W3C</abbr> Web Accessibility Initiative's (WAI) Protocols and Formats working group (PFWG) has addressed these deficiencies through several <abbr title="Worldwide Web Consortium">W3C</abbr> standards efforts, with a focus on the <cite><a href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/">Accessible Rich Internet Applications</a></cite> [<cite><a href="#ref_ARIA"><abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr></a></cite>] specification.</p>
<p><abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> enables rich Internet applications to have the same accessibility features as desktop <abbr title="graphical user interface">GUI</abbr> applications by adding metadata to markup technologies such as <abbr title="(Extensible) Hypertext Markup Language">(X)HTML</abbr>. Authors include <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> in their markup and user agents translate the <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> markup to the platform accessibility <abbr title="application programming interfaces">APIs</abbr>.</p>
<p>For an introduction to <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr>, see the <a href="http://www.w3.org/WAI/intro/aria.php"><abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> Overview</a>. The User Agent Implementation Guide describes how <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> <a href="#def_role" class="termref">roles</a>, <a href="#def_state" class="termref">states</a>, and <a href="#def_property" class="termref">properties</a> should be supported in user agents using platform accessibility <abbr title="Application Programming Interfaces">APIs</abbr>. It is part of a set of resources that define and support the <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> specification which includes the following documents: </p>
<ul><li><cite><a href="http://www.w3.org/TR/2010/WD-wai-aria-primer-20100916/"><abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> Primer</a></cite> [<cite><a href="#ref_ARIA-PRIMER">ARIA-PRIMER</a></cite>], a W3C Working Group Note, introduces developers to the accessibility problems that <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> is intended to solve, the fundamental concepts, and the technical approach of <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr>. It provides a good conceptual understanding of how <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> provides for interoperability with assistive technologies and support for a more usable, accessible experience. </li><li><cite><a href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/">Accessible Rich Internet Applications (WAI-ARIA) 1.0</a></cite> [<cite><a href="#ref_ARIA">ARIA</a></cite>], a planned <abbr title="World Wide Web Consortium">W3C</abbr> recommendation, defines the <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> standard.</li><li><cite><a href="http://www.w3.org/TR/2010/WD-wai-aria-practices-20100916/"><abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> Authoring Practices Guide</a></cite> [<cite><a href="#ref_ARIA-PRACTICES">ARIA-PRACTICES</a></cite>], a planned W3C Working Group Note, describes how web content developers can develop accessible rich internet applications using <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr>. It provides detailed advice and examples directed primarily to web application developers, yet also useful to user agent and developers of assistive technologies.</li><li><cite><a href="http://www.w3.org/TR/2008/WD-wai-aria-roadmap-20080204/">Roadmap for Accessible Rich Internet Applications (<abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> Roadmap)</a></cite> [<cite><a href="#ref_ARIA-ROADMAP">ARIA-ROADMAP</a></cite>], a planned W3C Working Group Note, defines the path to make rich web content accessible, including steps already taken, remaining future steps, and a time line.</li></ul>
<p>The <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> User Agent Implementation Guide begins by providing a general overview of accessibility <abbr title="Application Programming Interfaces">APIs</abbr> and the <a class="termref" href="#def_accessible_object">accessible object</a> hierarchy known as the <a class="termref" href="#def_accessibility_tree">accessibility tree</a>. The following sections give guidance on supporting keyboard navigation and mapping <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> roles, states, and properties to accessibility <abbr title="Application Programming Interfaces">APIs</abbr>. Other sections give guidance on calculating text alternatives, mapping actions to <a href="#def_event" class="termref">events</a>, event processing, special document handling procedures, and error handling.</p>
<p>This guide assumes that a user agent already exposes static content to assistive technology via the accessibility <abbr title="Application Programming Interfaces">API</abbr> on a given platform. Most of the additional work to enable <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> can be divided into three parts:</p>
<ol><li>Enabling keyboard navigation on elements that previously were not focusable</li><li>Mapping the <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> roles and <a class="termref" href="#def_attribute">attributes</a> into the roles, states and other property getters in the accessibility <abbr title="application programing interfaces">API</abbr></li><li>Computing text alternatives and managing states and events</li></ol>
<p>In general, <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> attributes should only affect how content is mapped to platform accessibility <abbr title="application programing interfaces">APIs</abbr>. They should not affect the visual rendering of content or the behavior of mainstream desktop browsers, except when style sheets are deliberately keyed off of <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> attributes as recommended in the specification. This allows one of the primary principles of <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> to be upheld—that content still renders and behaves the same for the majority of users in legacy browsers which do not support <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr>.</p>
<div class="section" id="intro_aapi">
<h3><span class="tocnum">1.1. </span> Accessibility <abbr title="Application Programming Interfaces">APIs</abbr> </h3><p class="permalink"><a href="#intro_aapi" title="Permalink for Accessibility APIs ">#</a></p>
<p>To provide access to desktop <abbr title="graphical user interface">GUI</abbr> applications, <a class="termref" href="#def_at">assistive technologies</a> originally used heuristic techniques to determine the meaning of the user interface and build an alternative off-screen model. For example, a row of labels displayed horizontally near the top of an application window might be a menu. Labels with a border drawn around them might be buttons. Heuristic techniques are not always accurate, however, and require assistive technologies to be updated whenever the software application is updated.</p>
<p>A much better technique is for the software application to provide the necessary information for interoperability with assistive technology. To meet this need, platform owners have developed specialized interfaces, called <a class="termref" href="#def_accessibility_api">accessibility <abbr title="Application Programming Interfaces">APIs</abbr></a>, which can be used to communicate accessibility information about user interfaces to assistive technologies. </p>
<p>In the case of static Web pages, the Document Object Model (DOM) is used to represent the structure and <a href="#def_state" class="termref">state</a> of the <a class="termref" href="#def_element">elements</a> in the document being rendered by a <a href="#def_useragent" class="termref">user agent</a>. The elements of the document are organized into a hierarchy of nodes known as the <abbr title="document object model">DOM</abbr> tree. For traditional static Web pages, assistive technologies, such as screen readers, interact with user agents using the <abbr title="Document Object Model">DOM</abbr>. For UI elements that are known to be interactive, such as <abbr title="Hypertext Markup Language">HTML</abbr> form elements and desktop applications, assistive technologies may use platform accessibility <abbr title="Application Programming Interfaces">APIs</abbr>.</p>
<p>In the case of rich Internet applications, developers use <abbr title="Document Object Model">DOM</abbr> <abbr title="application programming interfaces">APIs</abbr> to manipulate <a href="#def_object" class="termref">objects</a> in the <abbr title="Document Object Model">DOM</abbr> tree to make them behave like interactive desktop <abbr title="graphical user interface">GUI</abbr> applications. In order to make a Web application <a href="#def_understandable" class="termref">understandable</a> to assistive technologies, the user agent needs to map accessibility information from the elements in the <abbr title="document object model">DOM</abbr> tree to the Accessibility <abbr title="Application Programming Interfaces">APIs</abbr> of the underlying operating system or software platform throughout the lifecycle of the application. The information needed is provided when developers use <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> to supply <a href="#def_semantics" class="termref">semantic</a> <a href="#def_role" class="termref">role</a>, state, and <a href="#def_property" class="termref">property</a> information for elements. The screen reader or other assistive technology uses the semantic information exposed via the accessibility <abbr title="Application Programming Interface">API</abbr> to provide an alternative rendering of an application that is meaningful to a user. </p>
<p>Accessibility <abbr title="Application Programming Interfaces">APIs</abbr> covered by this document are:</p>
<ul><li><cite><a href="http://msdn.microsoft.com/en-us/library/ms697707.aspx">Microsoft Active Accessibility</a></cite> [<cite><a href="#ref_MSAA">MSAA</a></cite>] with <abbr title="User Interface Automation">UIA</abbr> Express</li><li><abbr title="Microsoft Active Accessibility">MSAA</abbr> with <cite><a href="http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2">IAccessible2</a></cite> [<cite><a href="#ref_IA2">IA2</a>]</cite>]</li><li><cite><a href="http://msdn.microsoft.com/en-us/library/ee684013%28VS.85%29.aspx"> User Interface Automation</a></cite> [<cite><a href="#ref_UIA-ARIA">UIA-ARIA</a></cite>]</li><li><cite><a href="http://developer.gnome.org/atk/unstable/">Linux Accessibility Toolkit</a></cite> [<cite><a href="#ref_ATK">ATK</a></cite>] and <cite><a href=" http://developer.gnome.org/libatspi/stable/">Assistive Technology - Service Provider Interface</a></cite> [<cite><a href="#ref_AT-SPI">AT-SPI</a></cite>]</li><li><cite><a href="http://developer.apple.com/library/mac/documentation/Accessibility/Conceptual/AccessibilityMacOSX/OSXAXModel/OSXAXmodel.html">Mac OS X Accessibility Protocol</a></cite> [<cite><a href="#ref_AXAPI">AXAPI</a></cite>]</li></ul>
<p>If user agent developers need to expose information using other accessibility <abbr title="Application Programming Interfaces">APIs</abbr>, it is recommended that they work closely with the developer of the platform where the <abbr title="application programing interfaces">API</abbr> runs, and assistive technology developers on that platform.</p>
</div>
<div class="section" id="intro_treetypes">
<h3><span class="tocnum">1.2. </span> The Accessibility Tree and the <abbr title="Document Object Model">DOM</abbr> Tree</h3><p class="permalink"><a href="#intro_treetypes" title="Permalink for The Accessibility Tree and the DOM Tree">#</a></p>
<p>The <a class="termref" href="#def_accessibility_tree">accessibility tree</a> and the <abbr title="Document Object Model">DOM</abbr> tree are parallel structures. Roughly speaking the accessibility tree is a subset of the <abbr title="Document Object Model">DOM</abbr> tree. It includes the user interface <a href="#def_object" class="termref">objects</a> of the <a href="#def_useragent" class="termref">user agent</a> and the objects of the document. <a href="#def_accessible_object" class="termref">Accessible objects</a> are created in the accessibility tree for every <abbr title="Document Object Model">DOM</abbr> <a class="termref" href="#def_element">element</a> that should be exposed to an <a class="termref" href="#def_at">assistive technology</a>, either because it may fire an accessibility <a href="#def_event" class="termref">event</a> or because it has a <a href="#def_property" class="termref">property</a>, relationship or feature which needs to be exposed. Generally if something can be trimmed out it will be, for reasons of performance and simplicity. For example, a <code><span></code> with just a style change and no <a href="#def_semantics" class="termref">semantics</a> may not get its own accessible object, but the style change will be exposed by other means.</p>
</div>
</div>
<div class="section" id="normative">
<h2><span class="tocnum">2. </span> Normative User Agent Implementation Requirements for <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr></h2><p class="permalink"><a href="#normative" title="Permalink for Normative User Agent Implementation Requirements for WAI-ARIA">#</a></p>
<p>This section is <a class="termref" href="#def_normative">normative</a>.</p>
<p>This specification indicates whether a section is <a class="termref" href="#def_normative">normative</a> or <a class="termref" href="#def_informative">informative</a> and the classification applies to the entire section. A statement "This section is normative" or "This section is informative" applies to all sub-sections of that section.</p>
<p>Normative sections provide requirements that <a href="#def_useragent" class="termref">user agents</a> must follow for an implementation to conform to this specification. The keywords <strong class="rfc2119">MUST</strong>, <strong class="rfc2119">MUST NOT</strong>, <strong class="rfc2119">REQUIRED</strong>, <strong class="rfc2119">SHALL</strong>, <strong class="rfc2119">SHALL NOT</strong>, <strong class="rfc2119">SHOULD</strong>, <strong class="rfc2119">RECOMMENDED</strong>, <strong class="rfc2119">MAY</strong>, and <strong class="rfc2119">OPTIONAL</strong> in this document are to be interpreted as described in <cite><a href="http://www.rfc-editor.org/rfc/rfc2119.txt">Keywords for use in RFCs to indicate requirement levels</a></cite> [<cite><a href="#ref_RFC2119">RFC2119</a></cite>]. RFC-2119 keywords are formatted in uppercase and contained in a <code>strong</code> element with <code>class="rfc2119"</code>. When the keywords shown above are used, but do not share this format, they do not convey formal information in the RFC 2119 sense, and are merely explanatory, i.e., informative. As much as possible, such usages are avoided in this specification.</p>
<p>Informative sections provide information useful to understanding the specification. Such sections may contain examples of recommended practice, but it is not required to follow such recommendations in order to conform to this specification.</p>
</div>
<div class="section" id="terms">
<h2><span class="tocnum">3. </span> Important Terms</h2>
<p>This section is <a class="termref" href="#def_informative">informative</a>.</p>
<p>While some terms are defined in place, the following definitions are used
throughout this document. </p>
<dl class="termlist"><dt><a id="def_accessibility_api" name="def_accessibility_api"></a>Accessibility <abbr title="Application Programming Interface">API</abbr></dt><dd>
<p>Operating systems and other platforms provide a set of interfaces that
expose information about <a href="#def_object" class="termref">objects</a> and <a href="#def_event" class="termref">events</a> to <a href="#def_at" class="termref">assistive
technologies</a>. Assistive technologies use these interfaces to get
information about and interact with those <a href="#def_widget" class="termref">widgets</a>.
Examples of accessibility APIs are the <a href="http://msdn.microsoft.com/en-us/library/ms697270(VS.85).aspx">Microsoft
Active Accessibility</a> [<a href="#ref_MSAA">MSAA</a>], the <a href="http://msdn.microsoft.com/en-us/library/ee684013%28VS.85%29.aspx">Microsoft User Interface Automation</a> [<a href="#ref_UIA-ARIA">UIA-ARIA</a>], the
<a href="http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Accessibility/cocoaAXIntro/cocoaAXintro.html">Mac <acronym title="OS Ten">OS X</acronym> Accessibility Protocol</a> [<a href="#ref_AXAPI">AXAPI</a>],
the <cite><a href="http://developer.gnome.org/atk/unstable/">Linux/Unix Accessibility Toolkit</a></cite> [<cite><a href="#ref_ATK">ATK</a></cite>] and <cite><a href="http://developer.gnome.org/libatspi/stable/">Assistive Technology Service Provider Interface</a></cite> [<cite><a href="#ref_AT-SPI">AT-SPI</a></cite>], and <a href="http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2">IAccessible2</a> [<a href="#ref_IA2">IA2</a>].</p>
</dd><dt><a id="def_accessibility_tree" name="def_accessibility_api"></a>Accessibility Tree</dt><dd>
<p>Tree of <a href="#def_accessible_object">accessible objects</a> that represents the structure of the user interface (UI). Each node in the accessibility tree represents an element in the <abbr title="user interface">UI</abbr> as exposed through the <a href="#def_accessibility_api">accessibility <abbr title="Application Programming Interface">API</abbr></a>; for example, a push button, a check box, or container.</p>
</dd><dt><a id="def_accessible_name" name="def_accessible_name"></a>Accessible
Name</dt><dd>
<p>The accessible name is the name of a user interface element. Each platform <a href="#def_accessibility_api" class="termref">accessibility <abbr title="application programming interface">API</abbr></a> provides
the accessible name property. The value of the accessible name may be
derived from a visible (e.g., the visible text on a button) or invisible
(e.g., the text alternative that describes an icon) property of the user
interface element.</p>
<p>A simple use for the accessible name property may be illustrated by
an "OK" button. The text "OK" is the accessible name.
When the button receives focus, assistive technologies may concatenate
the platform's role description with the accessible name. For example,
a screen reader may speak "push-button OK" or "OK button".
The order of concatenation and specifics of the role description (e.g. "button", "push-button", "clickable
button") are determined by platform accessibility APIs or assistive
technologies.</p>
</dd><dt><a id="def_accessible_object" name="def_accessible_object"></a>Accessible
object</dt><dd>
<p>A user interface <a href="#def_object">object</a> whose basic accessibility is exposed
to assistive technology via a platform <a href="#def_accessibility_api" class="termref">accessibility <abbr title="application programming interface">API</abbr></a>. Accessible objects are included in the <a href="#def_accessibility_tree">accessibility tree</a>. MS UIA represents accessible objects as automation elements.</p>
</dd><dt><a id="def_activation_behavior" name="def_activation_behavior"></a>Activation
behavior</dt><dd>
<p>The action taken when an <a href="#def_event">event</a>, typically initiated
by users through an input device, causes an element to fulfill a defined
role. The role may be defined for that element by the host language,
or by author-defined variables, or both. The role for any given element
may be a generic action, or may be unique to that element. For example,
the activation behavior of an <abbr title="Hypertext Markup Language">HTML</abbr> or <abbr title="Scalable Vector Graphics">SVG</abbr> <code><a></code> element
shall be to cause the user agent to traverse the link specified in the <code>href</code> attribute,
with the further optional parameter of specifying the browsing context
for the traversal (such as the current window or tab, a named window,
or a new window); the activation behavior of an <abbr title="Hypertext Markup Language">HTML</abbr> <code><input></code> element
with the <code>type</code> attribute value <code>submit</code> shall
be to send the values of the form elements to an author-defined <abbr title="Internationalized Resource Identifiers">IRI</abbr> by
the author-defined <abbr title="Hypertext Transfer Protocol">HTTP</abbr> method.</p>
</dd><dt><a id="def_at" name="def_at"></a>Assistive Technologies</dt><dd>
<p>Hardware and/or software that acts as a <a class="termref" href="#def_useragent">user
agent</a>, or along with a mainstream user agent, to meet the interface
requirements of users with disabilities beyond those offered by the
mainstream <a href="#def_useragent" class="termref">user agents</a>.</p>
<p>Services provided by assistive technologies include alternative presentations
(e.g., synthesized speech or magnified content), alternative input methods
(e.g., speech recognition), additional navigation or orientation mechanisms,
and content transformations.</p>
<p>Assistive technologies often communicate with mainstream user agents
by using and monitoring <a href="#def_accessibility_api" class="termref">accessibility <abbr title="Application Programming Interfaces">APIs</abbr></a>.</p>
<p>The distinction between mainstream user agents and assistive technologies
is not absolute. Many mainstream user agents provide some features to
assist individuals with disabilities. The basic difference is that mainstream
user agents target broad and diverse audiences that usually include people
with and without disabilities, whereas assistive technologies usually
target users with specific disabilities. The assistance provided by assistive
technologies is more specific and appropriate to the needs of its target
users.</p>
<p>Examples of assistive technologies that are important in the context
of this document include the following:</p>
<ul><li>screen magnifiers, which are used to enlarge and improve the visual
readability of rendered text and images;</li><li>screen readers, which are most-often used to convey information through
synthesized speech or a refreshable Braille display;</li><li>text-to-speech software, which is used to convert text into synthetic
speech;</li><li>speech recognition software, which is used to allow spoken control
and dictation;</li><li>alternate input technologies (including head pointers, on-screen
keyboards, single switches, and sip/puff devices), which are used to
simulate the keyboard;</li><li>alternate pointing devices, which are used to simulate mouse pointing
and clicking.</li></ul>
</dd><dt><a name="def_attribute" id="def_attribute"></a>Attribute</dt><dd>
<p>In this specification, attribute is used as it is in markup languages.
Attributes are structural features added to <a class="termref" href="#def_element">elements</a> to
provide information about the <a class="termref" href="#def_state">states</a> and <a class="termref" href="#def_property">properties</a> of
the <a class="termref" href="#def_object">object</a> represented by the
element.</p>
</dd><dt><a id="def_class" name="def_class"></a>Class</dt><dd>
<p>A set of instance <a class="termref" href="#def_object">objects</a> that
share similar characteristics.</p>
</dd><dt><a id="def_element" name="def_element"></a>Element</dt><dd>
<p>In this specification, element is used as it is in markup languages.
Elements are the structural elements in markup language that contains
the data profile for <a class="termref" href="#def_object">objects</a>.</p>
</dd><dt><a id="def_event" name="def_event"></a>Event</dt><dd>
<p>A programmatic message used to communicate discrete changes in the <a href="#def_state" class="termref">state</a> of
an <a href="#def_object" class="termref">object</a> to other objects
in a computational system. User input to a web page is commonly mediated
through abstract events that describe the interaction and can provide
notice of changes to the state of a document object. In some programming
languages, events are more commonly known as notifications.</p>
</dd><dt><a name="def_hidden" id="def_hidden"></a>Hidden</dt><dd>
<p>Indicates that the <a href="#def_element" class="termref">element</a> is
not visible or <a href="#def_perceivable" class="termref">perceivable</a> to <em>any</em> user.
An element is only considered <em>hidden</em> in the DOM if it or one
of its ancestor elements has the <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-hidden"><code>aria-hidden</code> (state)</a> attribute
set to <code>true</code>.</p>
<p class="note">Note: Authors are reminded that <a href="http://www.w3.org/TR/CSS21/visufx.html#visibility">visibility:hidden</a> and <a href="http://www.w3.org/TR/CSS21/visuren.html#propdef-display">display:none</a> apply
to <em>all</em> <a href="http://www.w3.org/TR/CSS21/media.html#media-types"><abbr title="Cascading Style Sheets">CSS</abbr> media
types</a>; therefore, use of either will hide the content from assistive
technologies that access the DOM through a rendering engine. However,
in order to support assistive technologies that access the DOM directly,
or other authoring techniques to visibly <em>hide</em> content (for example,
opacity or <a href="http://www.w3.org/TR/CSS21/visuren.html#propdef-position">off-screen
positioning</a>), authors need to ensure the <code>aria-hidden</code> attribute
is always updated accordingly when an element is shown or hidden.</p>
</dd><dt><a name="def_informative" id="def_informative"></a>Informative</dt><dd>
<p>Content provided for information purposes and not required for conformance.
Content required for conformance is referred to as <a href="#def_normative" class="termref">normative</a>.</p>
</dd><dt><a id="def_keyboard_accessible" name="def_keyboard_accessible"></a>Keyboard
Accessible</dt><dd>
<p>Accessible to the user using a keyboard or <a href="#def_at" class="termref">assistive
technologies</a> that mimic keyboard input, such as a sip and puff
tube. References in this document relate to <cite><a href="http://www.w3.org/TR/WCAG20/#keyboard-operation"><abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2
Guideline 2.1; "Make all functionality available from a keyboard"</a></cite> [<cite><a href="#ref_WCAG20">WCAG20</a></cite>].</p>
</dd><dt><a name="def_liveregion" id="def_liveregion"></a>Live Region</dt><dd>
<p>Live regions are perceivable regions of a web page that are typically
updated as a result of an external event when user focus may be elsewhere.
These regions are not always updated as result of a user interaction.
This practice has become commonplace with the growing use of Ajax.
Examples of live regions include a chat log, stock ticker, or a sport scoring
section that updates periodically to reflect game statistics. Since these
asynchronous areas are expected to update outside the user's area of
focus, assistive technologies such as screen readers have either been
unaware of their existence or unable to process them for the user. WAI-ARIA
has provided a collection of properties that allow the author to identify
these live regions and how to process them: aria-live, aria-relevant,
aria-atomic, and aria-busy. Pre-defined live region roles are listed
in the <cite><a href="http://www.w3.org/WAI/PF/aria-practices/#chobet">Choosing
Between Special Case Live Regions</a></cite> ([<cite><a href="#ref_ARIA-PRACTICES">ARIA-PRACTICES</a></cite>],
Section 5.3).</p>
</dd><dt><a id="def_managedstate" name="def_managedstate"></a>Managed State</dt><dd>
<p><a href="#def_accessibility_api" class="termref">Accessibility API</a> <a href="#def_state" class="termref">state</a> that is controlled by the user agent, such as focus and selection. These are contrasted with "unmanaged states" that are typically controlled by the author. Nevertheless, authors can override some managed states, such as aria-posinset and aria-setsize. Many managed states have corresponding CSS pseudo-classes, such as :focus, and pseudo-elements, such as ::selection, that are also updated by the user agent.</p></dd><dt><a name="def_normative" id="def_normative"> </a>Normative</dt><dd>
<p>Required for conformance. By contrast, content identified as <a href="#def_informative" class="termref">informative</a> or "non-normative" is
not required for conformance.</p>
</dd><dt><a id="def_object" name="def_object"></a>Object</dt><dd>
<p>In the context of user interfaces, an item in the perceptual user experience, represented in markup languages by one or more <a href="#def_element" class="termref">elements</a>,
and rendered by <a href="#def_useragent" class="termref">user agents</a>. </p>
In the context of programming, the instantiation of one or more <a href="#def_class" class="termref">classes</a> and interfaces which define the general characteristics of similar objects. An object in an <a href="#def_accessibility_api" class="termref">accessibility <abbr title="Application Programming Interfaces">API</abbr></a> may represent one or more DOM objects. Accessibility APIs have defined interfaces that are distinct from DOM interfaces.</dd></dl>
<dl class="termlist"><dt><a name="def_ontology" id="def_ontology"></a>Ontology</dt><dd>
<p>A description of the characteristics of <a href="#def_class" class="termref">classes</a> and
how they relate to each other.</p>
</dd><dt><a id="def_owned_element" name="def_owned_element"></a>Owned Element</dt><dd>
<p>An 'owned element' is any <abbr title="Document Object Model">DOM</abbr> descendant
of the <a href="#def_element" class="termref">element</a>, any element
specified as a child via <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-owns"><code>aria-owns</code></a>,
or any <abbr title="Document Object Model">DOM</abbr> descendant of the
owned child.</p>
</dd><dt><a id="def_owning_element" name="def_owning_element"></a>Owning Element</dt><dd>
<p>An 'owning element' is any <abbr title="Document Object Model">DOM</abbr> ancestor
of the <a href="#def_element" class="termref">element</a>, or any element with an <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-owns"><code>aria-owns</code></a> attribute which references the ID of the element. </p>
</dd><dt><a id="def_perceivable" name="def_perceivable"></a>Perceivable</dt><dd>
<p>Presentable to users in ways they can sense. References in this document
relate to <cite><a href="http://www.w3.org/TR/WCAG20/#perceivable"><abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2
Principle 1; content must be perceivable</a></cite> [<cite><a href="#ref_WCAG20">WCAG20</a></cite>].</p>
</dd><dt><a id="def_property" name="def_property"></a>Property</dt><dd>
<p><a href="#def_attribute" class="termref">Attributes</a> that are essential
to the nature of a given <a href="#def_object" class="termref">object</a>,
or that represent a data value associated with the object. A change of
a property may significantly impact the meaning or presentation of an
object. Certain properties (for example, <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-multiline"><code>aria-multiline</code></a>)
are less likely to change than <a class="termref" href="#def_state">states</a>,
but note that the frequency of change difference is not a rule. A few
properties, such as <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-activedescendant"><code>aria-activedescendant</code></a>, <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuenow"><code>aria-valuenow</code></a>,
and <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuetext"><code>aria-valuetext</code></a> are expected
to change often. See <a href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#statevsprop">clarification of states versus
properties</a>.</p>
</dd><dt><a id="def_relationship" name="def_relationship"></a>Relationship</dt><dd>
<p>A connection between two distinct things. Relationships
may be of various types to indicate which <a href="#def_object" class="termref">object</a> labels
another, controls another, etc.</p>
</dd><dt><a id="def_role" name="def_role"></a>Role</dt><dd>
<p>Main indicator of type.
This <a href="#def_semantics" class="termref">semantic</a> association
allows tools to present and support interaction with the object in a
manner that is consistent with user expectations about other objects
of that type.</p>
</dd><dt><a name="def_semantics" id="def_semantics"></a>Semantics</dt><dd>
<p>The meaning of something as understood by a human, defined in a way
that computers can process a representation of an <a href="#def_object" class="termref">object</a>,
such as <a href="#def_element" class="termref">elements</a> and <a href="#def_attribute" class="termref">attributes</a>,
and reliably represent the object in a way that various humans will achieve
a mutually consistent understanding of the object.</p>
</dd><dt><a id="def_state" name="def_state"></a>State</dt><dd>
<p>A state is a dynamic <a class="termref" href="#def_property">property</a> expressing
characteristics of an <a href="#def_object" class="termref">object</a> that
may change in response to user action or automated processes. States
do not affect the essential nature of the object, but represent data
associated with the object or user interaction possibilities. See <a href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#statevsprop">clarification
of states versus properties</a>.</p>
</dd><dt><a id="def_understandable" name="def_understandable"></a>Understandable</dt><dd>
<p>Presentable to users in ways they can construct an appropriate meaning.
References in this document relate to <cite><a href="http://www.w3.org/TR/WCAG20/#understandable"><abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2
Principle 3; Information and the operation of user interface must be
understandable</a></cite> [<cite><a href="#ref_WCAG20">WCAG20</a></cite>].</p>
</dd><dt><a id="def_useragent" name="def_useragent"></a>User Agent</dt><dd>
<p>Any software that retrieves and renders web content for users, such
as web browsers, media players, plug-ins, and other programs including <a href="#def_at" class="termref">assistive
technologies</a>.</p>
</dd><dt><a id="def_valid_ID" name="def_valid_ID"></a>Valid IDREF</dt><dd>
<p>A reference to a target element in the same document that has a matching ID</p>
</dd><dt><a id="def_value" name="def_value"></a>Value</dt><dd>
<p>A literal that solidifies the information expressed by a <a class="termref" href="#def_state">state</a>, <a class="termref" href="#def_property">property</a>, <a class="termref" href="#def_role">role</a>,
or text content.</p>
</dd><dt><a id="def_widget" name="def_widget"></a>Widget</dt><dd>
<p>Discrete user interface <a class="termref" href="#def_object">object</a> with which the user can interact. Widgets
range from simple objects that have one value or operation (e.g., check
boxes and menu items), to complex objects that contain many managed sub-objects
(e.g., trees and grids).</p>
</dd></dl>
</div>
<div class="section" id="keyboard-focus">
<h2><span class="tocnum">4. </span> Supporting Keyboard Navigation</h2><p class="permalink"><a href="#keyboard-focus" title="Permalink for Supporting Keyboard Navigation">#</a></p>
<p>This section is <a class="termref" href="#def_normative">normative</a>.</p>
<p>Enabling keyboard navigation in web applications is a necessary step toward making accessible web applications possible. <a href="#def_useragent" class="termref">User agents</a> <strong class="rfc2119">MUST</strong> provide a mechanism for authors to specify that any renderable <a class="termref" href="#def_element">element</a> may be focusable without placing the element in a pre-defined tabbing order. In <abbr title="Hypertext Markup Language">HTML</abbr> for example, <code>tabindex</code> is used to provide this function. </p>
<p>User agents <strong class="rfc2119">MUST</strong> also provide programmatic access to all focusable elements. This allows for device-independent access, is needed to conform to the <cite><a href="http://www.w3.org/TR/2002/REC-UAAG10-20021217/">User Agent Accessibility Guidelines</a></cite> [<cite><a href="#ref_UAAG">UAAG</a></cite>], and is vital for a successful implementation of <abbr title="accessible rich internet applications">WAI-ARIA</abbr>.</p>
<p>Usable keyboard navigation in a rich Internet application is different from the tabbing paradigm among interactive elements such as links and form controls in a static document. In rich internet applications, the user tabs to significant complex <a href="#def_widget" class="termref">widgets</a> and uses the arrow keys to navigate within a complex widget, such as a menu or spreadsheet. The changes that <abbr title="accessible rich internet applications">WAI-ARIA</abbr> introduces in keyboard navigation make this enhanced accessibility possible. In <abbr title="accessible rich internet applications">WAI-ARIA</abbr>, any element can be keyboard focusable. In addition to host language mechanisms such as <code>tabindex</code> in <abbr title="Hypertext Markup Language">HTML</abbr>, <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-activedescendant"><code>aria-activedescendant</code></a> provides another mechanism for keyboard operation. Most other aspects of <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> widget development depend on keyboard navigation functioning properly.</p>
<p><a class="termref" href="#def_at">Assistive technologies</a> often need to set the focus. For example, voice input software, onscreen keyboards and screen readers supply their own structured navigation modes, providing additional commands for moving to elements in a page. User agents need to allow assistive technologies to set the focus. See the section titled "<a href="#keyboard-focus_at">Handling focus changes from the Assistive Technology</a>" for details.</p>
<div class="section" id="focus_state_event_table">
<h3><span class="tocnum">4.1. </span> Focus States and Events Table</h3><p class="permalink"><a href="#focus_state_event_table" title="Permalink for Focus States and Events Table">#</a></p>
<p>The following table defines the accessibility <abbr title="Application Programming Interface">API</abbr> keyboard focus states and events used in later sections of the document.</p>
<table><caption>
Table of <a class="termref" href="#def_accessibility_api">accessibility <abbr title="application programing interface">APIs</abbr></a> for focus states and <a href="#def_event" class="termref">events</a>
</caption><tr><th rowspan="1" colspan="1"> </th><th rowspan="1" colspan="1"><abbr title="Microsoft Active Accessibility">MSAA</abbr></th><th rowspan="1" colspan="1">Microsoft <abbr title="User Interface Automation">UIA</abbr></th><th rowspan="1" colspan="1"><abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology - Service Provider Interface">AT-SPI</abbr></th><th rowspan="1" colspan="1">Mac OS X Accessibility</th></tr><tr><td rowspan="1" colspan="1">Focusable state</td><td rowspan="1" colspan="1"><code>STATE_SYSTEM_FOCUSABLE</code></td><td rowspan="1" colspan="1"><code>UIA_IsKeyboardFocusablePropertyId</code></td><td rowspan="1" colspan="1"><code>ATK_STATE_FOCUSABLE</code></td><td rowspan="1" colspan="1"><code>boolean AXFocused</code> (writable)</td></tr><tr><td rowspan="1" colspan="1">Focused state</td><td rowspan="1" colspan="1"><p><code>STATE_SYSTEM_FOCUSED</code></p></td><td rowspan="1" colspan="1"><code>UIA_HasKeyboardFocusPropertyId</code></td><td rowspan="1" colspan="1"><code>ATK_STATE_FOCUSED</code></td><td rowspan="1" colspan="1"><code>boolean AXFocused</code></td></tr><tr><td rowspan="1" colspan="1">Focus event</td><td rowspan="1" colspan="1"><p><code>EVENT_OBJECT_FOCUS</code></p></td><td rowspan="1" colspan="1"><code>UIA_AutomationFocusChangedEventId</code></td><td rowspan="1" colspan="1"><code>FOCUSED</code></td><td rowspan="1" colspan="1"><code>AXFocusedUIElementChanged</code></td></tr></table>
</div>
<div class="section" id="keyboard-focus_tabindex">
<h3><span class="tocnum">4.2. </span> Controlling focus with <code>tabindex</code></h3><p class="permalink"><a href="#keyboard-focus_tabindex" title="Permalink for Controlling focus with tabindex">#</a></p>
<p class="ednote">Editorial Note: this section is specific to <abbr title="Hypertext Markup Language">HTML</abbr> only and may be moved to the <abbr title="Hypertext Markup Language 5">HTML</abbr> Implementation Guide.</p>
<p><a href="#def_useragent" class="termref">User agents</a> that support <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> for <abbr title="Hypertext Markup Language">HTML</abbr> expand the usage of <code>tabindex</code>, <code>focus</code>, and <code>blur</code> to allow them on all <abbr title="Hypertext Markup Language">HTML</abbr> <a class="termref" href="#def_element">elements</a>. Authors may add any element such as a <code>div</code>, <code>span</code> or <code>img</code> to the default tab order by setting <code>tabindex="0"</code>. In addition, any item with <code>tabindex</code> equal to a negative integer is focusable via script or a mouse click, but is not part of the default tab order. This is not supported in the <abbr title="Hypertext Markup Language">HTML</abbr> 4 specification but is expected to be in compliance with <abbr title="Hypertext Markup Language">HTML</abbr> 5.</p>
<p>The <code>tabindex</code> system provides one way to develop custom <a href="#def_widget" class="termref">widgets</a> which are <a href="#def_keyboard_accessible" class="termref">keyboard accessible</a>, from simple widgets like a <code>slider</code> to container widgets like a <code>menubar</code>, <code>treeview</code> or <code>grid</code>.</p>
<p class="note">Note: refer to the <a href="#focus_state_event_table">Table of accessibility <abbr title="Application Programming Interfaces">APIs</abbr> for focus states and events</a> for the rules in this section.</p>
<p>The user agent <strong class="rfc2119">MUST</strong> do the following to enable accessible <code>tabindex</code> usage on all elements:</p>
<ol><li>Where <code>tabindex</code> equals a negative integer, set the focusable state, but do not include the element in the sequential tab order.</li><li>Where <code>tabindex="0"</code>, set the focusable state and include it in the sequential tab order.</li><li>Where <code>tabindex</code> is greater than zero, set the focusable state, and include the element in the sequential tab order according to the <a href="#def_value" class="termref">value</a> of the <code>tabindex</code> <a class="termref" href="#def_attribute">attribute</a> and before any elements with <code>tabindex</code> either omitted or with a value of zero. See <cite><a href="http://www.w3.org/TR/2009/WD-html5-20090825/editing.html#sequential-focus-navigation">Sequential focus navigation</a></cite> [<cite><a href="#ref_HTML5"><abbr title="Hypertext Markup Language 5">HTML5</abbr></a></cite>] for details. </li><li>Expose the <code>element.tabIndex</code> <a href="#def_property" class="termref">property</a> for every <abbr title="Hypertext Markup Language">HTML</abbr> element that supports the <code>tabindex</code> attribute.</li><li>Add the <code>focus</code> and <code>blur</code> methods to the <code>HTMLElement</code> interface (available to script for every type of element).</li><li>Fire <code>focus</code>, <code>blur</code>, <code>DOMFocusIn</code>, and <code>DOMFocusOut</code> <a href="#def_event" class="termref">events</a> for any element that can receive focus.</li><li>When a <code>keydown</code> event is cancelled, also cancel the <code>keypress</code> event.</li><li>Expose the focusable states for any element in the accessibility tree.</li><li>When any object has focus, exposed the focused state. When it loses focus, remove the focused state.</li><li>When the user triggers an element that is only focusable because of its <code>tabindex</code> attribute in a manner other than clicking it, such as by pressing <kbd>Enter</kbd>, and the element has no defined <a class="termref" href="#def_activation_behavior">activation behavior</a>, fire a <code>click</code> event.</li><li>When the user triggers an element with a defined activation behavior in a manner other than clicking it, such as by pressing <kbd>Enter</kbd>, simulate a <code>click</code> on the element. The steps to simulate a <code>click</code> include:
<ol><li>running pre-click activation steps</li><li>firing a <code>click</code> event</li><li>running post-click activation steps</li></ol>
If the event is cancelled, run cancelled activation steps on the element instead.</li></ol>
</div>
<div class="section" id="keyboard-focus_aria-activedescendant">
<h3><span class="tocnum">4.3. </span> Controlling focus with <code>aria-activedescendant</code></h3><p class="permalink"><a href="#keyboard-focus_aria-activedescendant" title="Permalink for Controlling focus with aria-activedescendant">#</a></p>
<p>When implementing <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-activedescendant"><code>aria-activedescendant</code></a> as described below, the user agent keeps the <abbr title="Document Object Model">DOM</abbr> focus on the container element but communicates desktop focus events and states to the assistive technology as if the active descendant has focus. It is the responsibility of the user agent to ensure that keyboard events are processed at the container <a class="termref" href="#def_element">element</a> that has <abbr title="Document Object Model">DOM</abbr> focus. Any keyboard events directed at the active descendant bubble up to the <abbr title="Document Object Model">DOM</abbr> element with focus, the containter element, for processing.</p>
<p>The <code>aria-activedescendant</code> <a href="#def_property" class="termref">property</a> may be used to enable keyboard accessibility on <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> <a class="termref" href="#def_element">elements</a> that support this <a class="termref" href="#def_attribute">attribute</a>. It is often a more convenient way of creating container <a href="#def_widget" class="termref">widget</a> keyboard navigation (where the entire widget is in the tab order just once, but the user can use other keys, typically <kbd>arrow</kbd> keys, to navigate to descendant items of the container).</p>
<p>Typically, the author will use host language <a href="#def_semantics" class="termref">semantics</a> to put the container element in the sequential tab order (<code>tabindex="0"</code> in <abbr title="Hypertext Markup Language">HTML</abbr>) and <code>aria-activedescendant</code> to point to the ID of the currently active descendant. The author, not the <a href="#def_useragent" class="termref">user agent</a>, is responsible for styling the currently active descendant to show it has keyboard focus. The author cannot use <code>:<span class="css-selector">focus</span></code> to style the currently active descendant since actual focus is on the container.</p>
<p class="note">Note: Refer to the <a href="#focus_state_event_table">Table of accessibility <abbr title="Application Programming Interfaces">APIs</abbr> for focus states and events</a> for the rules in this section.</p>
<p>The user agent <strong class="rfc2119">MUST</strong> do the following to implement <code>aria-activedescendant</code>:</p>
<ol><li>Implement the host language method for keyboard navigation so that the container widget may be included in the tab order. For <abbr title="Hypertext Markup Language">HTML</abbr> implementations, see <a href="#keyboard-focus_tabindex">Controlling focus with <code>tabindex</code></a>. </li><li>Do not expose the focused state in the <a class="termref" href="#def_accessibility_api">accessibility <abbr title="application programing interface">API</abbr></a> for any element when it has <abbr title="Document Object Model">DOM</abbr> focus and also has <code>aria-activedescendant</code> which points to a <a href="#def_valid_ID" class="termref">valid ID</a>.</li><li>When the <code>aria-activedescendant</code> attribute changes on an element that currently has <abbr title="Document Object Model">DOM</abbr> focus, remove the focused state from the previously focused object and fire an accessibility <abbr title="application programing interface">API</abbr> desktop focus <a href="#def_event" class="termref">event</a> on the new active descendant. If <code>aria-activedescendant</code> is cleared or does not point to an element in the current document, fire a desktop focus event for the container <a href="#def_object" class="termref">object</a> that had the attribute change.</li><li>For any element with an ID attribute, where the element is a descendant of an element with the<code> aria-activedescendant</code> attribute, apply the following accessibility <abbr title="Application Programming Interface">API</abbr> states to the target to ensure the object is accessible:
<ol><li>Focusable, if the element also has a <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> <a href="#def_role" class="termref">role</a> — because the <code>aria-activedescendant</code> of the container can potentially point to it. It is not absolutely necessary to check this when there is no role, because <abbr title="Hypertext Markup Language">HTML</abbr> elements that would be focusable would already have the focusable state.</li><li>Focused, whenever the container element sets <code>aria-activedescendant</code> to match the ID of this descendant and the container widget with <code>aria-activedescendant</code> has <abbr title="Document Object Model">DOM</abbr> focus</li></ol>
</li></ol>
</div>
<div class="section" id="keyboard-focus_at">
<h3><span class="tocnum">4.4. </span> Handling focus changes from the Assistive Technology</h3><p class="permalink"><a href="#keyboard-focus_at" title="Permalink for Handling focus changes from the Assistive Technology">#</a></p>
<p>Assistive technologies, such as screen readers, voice input software and on-screen keyboards, might request that the keyboard focus be moved using the following accessibility <abbr title="Application Programming Interfaces">APIs</abbr>:</p>
<ul><li>MSAA: <code>accSelect(SELFLAG_TAKEFOCUS)</code></li><li>UIA: <code>RaiseAutomationEvent</code></li><li>ATK/AT-SPI: <code>AtkComponent::grab_focus</code></li><li>Mac OS X Accessibility: Notification: <code>AXFocusedUIElementChanged</code></li></ul>
<p class="note">Note: Refer to the <a href="#focus_state_event_table">Table of accessibility <abbr title="Application Programming Interfaces">APIs</abbr> for focus states and events</a> for the rules in this section.</p>
<p>When an assistive technology requests a change of focus using one of the above <abbr title="Application Programming Interfaces">APIs</abbr>, user agents <strong class="rfc2119">MUST</strong> do the following:</p>
<ul><li>Remove the focused state from the previously focused object.</li><li>If the <a class="termref" href="#def_element">element</a> can take <abbr title="Document Object Model">DOM</abbr> focus, the <a href="#def_useragent" class="termref">user agent</a> <strong class="rfc2119">MUST</strong> set the <abbr title="Document Object Model">DOM</abbr> focus to it. Otherwise, if the current element has an ID and an ancestor with the <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-activedescendant"><code>aria-activedescendant</code></a> <a class="termref" href="#def_attribute">attribute</a> present, the user agent <strong class="rfc2119">MUST</strong> set <abbr title="Document Object Model">DOM</abbr> focus to that ancestor. When it is not possible for the user agent to set <abbr title="Document Object Model">DOM</abbr> focus to the containing element with <code>aria-activedescendant</code>, the user agent <strong class="rfc2119">MAY</strong> attempt to set <abbr title="Document Object Model">DOM</abbr> focus to the child element itself.</li><li>If the current element has an ID and an ancestor with the <code>aria-activedescendant</code> attribute present, the user agent <strong class="rfc2119">MUST</strong> set the accessibility <abbr title="Application Programming Interface">API</abbr> focused state and fire an accessibility <abbr title="Application Programming Interface">API</abbr> desktop focus event on the new active descendant.</li></ul>
<p class="note">Note: the inability to set <abbr title="Document Object Model">DOM</abbr> focus to the containing element indicates an author error.</p>
</div>
</div>
<div class="section" id="mapping">
<h2><span class="tocnum">5. </span> Mapping <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> to Accessibility <abbr title="Application Programming Interfaces">APIs</abbr></h2><p class="permalink"><a href="#mapping" title="Permalink for Mapping WAI-ARIA to Accessibility APIs">#</a></p>
<p>This section is <a class="termref" href="#def_normative">normative</a>.</p>
<div class="section" id="mapping_general">
<h3><span class="tocnum">5.1. </span> General rules for exposing <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> semantics</h3><p class="permalink"><a href="#mapping_general" title="Permalink for General rules for exposing WAI-ARIA semantics">#</a></p>
<p>Where supported by the platform <a class="termref" href="#def_accessibility_api">Accessibility <abbr title="Application Programming Interface">API</abbr></a>, <a href="#def_useragent" class="termref">user agents</a> expose <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> <a href="#def_semantics" class="termref">semantics</a> through the standard mechanisms of the desktop accessibility <abbr title="application programing interface">API</abbr>. For example, for <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> <a href="#def_widget" class="termref">widgets</a>, compare how the widget is exposed in a similar desktop widget. In general most <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> widget capabilities are exposed through the <a href="#def_role" class="termref">role</a>, <a href="#def_value" class="termref">value</a>, Boolean <a href="#def_state" class="termref">states</a> and relations of the accessibility <abbr title="application programing interface">API</abbr>.</p>
<p>With respect to <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> 1.0, accessibility <abbr title="application programming interfaces">APIs</abbr> operate in one direction only. User agents publish <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> information (roles, states, and <a href="#def_property" class="termref">properties</a>) via an accessibility <abbr title="application programming interface">API</abbr>, and an <abbr title="assistive technology">AT</abbr> can acquire that information using the same <abbr title="application programming interface">API</abbr>. However, the other direction is not supported. <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> 1.0 does not define mechanisms for assistive technologies to directly modify <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> information.</p>
<div class="section" id="include_elements">
<h4><span class="tocnum">5.1.1. </span> Including Elements in the Accessibility Tree</h4><p class="permalink"><a href="#include_elements" title="Permalink for Including Elements in the Accessibility Tree">#</a></p>
<p><a href="#def_useragent" class="termref">User agents</a> <strong class="rfc2119">MUST</strong> provide an <a href="#def_accessible_object" class="termref">accessible object</a> in the <a class="termref" href="#def_accessibility_tree">accessibility tree</a> corresponding to <abbr title="Document Object Model">DOM</abbr> <a class="termref" href="#def_element">elements</a> that meet any of the following criteria:</p>
<ul><li>Text elements</li><li>Elements that may fire an accessible <a href="#def_event" class="termref">event</a></li><li>Elements that have a <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> <a href="#def_property" class="termref">property</a>, <a href="#def_relationship" class="termref">relationship</a> or feature which needs to be exposed and does not have a <a href="#def_role" class="termref">role</a> of <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#presentation"><code>presentation</code></a> directly or inherited from the <a href="#def_owning_element" class="termref">owning element</a>.</li><li>Elements that are focusable, or have an ID <a class="termref" href="#def_attribute">attribute</a> and an ancestor with the <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-activedescendant"><code>aria-activedescendant</code></a> attribute that matches the implicit or explicit <a href="#def_semantics" class="termref">semantics</a> of the required context role. In either case, the element may receive focus and need to fire a<code> FOCUS </code>event.</li><li>Elements that have a role attribute but do not contain the <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#presentation"><code>presentation</code></a> role before any other mappable role (see <a href="#mapping_role">Role Mapping</a> below) and do not inherit a role of <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#presentation"><code>presentation</code></a> from an owning element. If the <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#presentation"><code>presentation</code></a> role is used or inherited, the element must still be exposed if it has a <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> global attribute other than <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-hidden"><code>aria-hidden</code></a> or is focusable, so that<code> FOCUS </code>events can be fired (focus must never be lost).</li><li>Elements that have one of the <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> global attributes but do not have <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-hidden"><code>aria-hidden</code></a><code>="true"</code>. (See below for additional guidance on <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-hidden"><code>aria-hidden</code></a>.)</li><li>Elements that have an ID which is referenced by another element via a <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> relation (<a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-controls"><code>aria-controls</code></a>, <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-describedby"><code>aria-describedby</code></a>, <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-flowto"><code>aria-flowto</code></a>, <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-labelledby"><code>aria-labelledby</code></a> or <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-owns"><code>aria-owns</code></a>) and do not have a role of <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#presentation"><code>presentation</code></a> directly or inherited from an owning element.</li></ul>
<p>User agents <strong class="rfc2119">MAY</strong> provide an accessible object in the accessibility tree corresponding to DOM elements that meet the following criteria:
</p><ul><li>Elements that have a <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr>global attribute of <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-hidden"><code>aria-hidden</code></a><code>="true"</code>. </li></ul>
</div>
<div class="section" id="exclude_elements">
<h4><span class="tocnum">5.1.2. </span> Excluding Elements from the Accessibility Tree</h4><p class="permalink"><a href="#exclude_elements" title="Permalink for Excluding Elements from the Accessibility Tree">#</a></p>
<p>The following <a class="termref" href="#def_element">elements</a> are not exposed via the <a class="termref" href="#def_accessibility_api">accessibility <abbr title="Application Programming Interface">API</abbr></a> and <a href="#def_useragent" class="termref">user agents</a> <strong class="rfc2119">MUST NOT</strong> include them in the <a class="termref" href="#def_accessibility_tree">accessibility tree</a>:</p>
<ul><li>Elements with <code>role="</code><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#presentation"><code>presentation</code></a><code>"</code> according to the rules for <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#presentation"><code>presentation</code></a> <a href="#def_role" class="termref">role</a> defined in <cite><a href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/">Accessible Rich Internet Applications (WAI-ARIA) 1.0</a></cite> [<cite><a href="#ref_ARIA">ARIA</a></cite>].
</li></ul>
<p>The following elements are not exposed via the accessibility <abbr title="Application Programming Interface">API</abbr> and user agents <strong class="rfc2119">SHOULD NOT</strong> include them in the accessibility tree:</p>
<ul><li>children of the following <a href="#def_object" class="termref">objects</a>, which have the characteristic "Children Presentational: True":
<ul><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#button"><code>button</code></a></li><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#img"><code>img</code></a></li><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#math"><code>math</code></a></li><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#progressbar"><code>progressbar</code></a></li><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#separator"><code>separator</code></a></li><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#scrollbar"><code>scrollbar</code></a></li><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#slider"><code>slider</code></a></li></ul>
</li></ul>
</div>
<div class="section" id="notify_state_changes">
<h4><span class="tocnum">5.1.3. </span> Notification of State Changes</h4><p class="permalink"><a href="#notify_state_changes" title="Permalink for Notification of State Changes">#</a></p>
<p>User agents notify assistive technologies of state and property changes as defined in <a href="#mapping_events">Events</a>.</p>
</div>
</div>
<div class="section" id="mapping_conflicts">
<h3><span class="tocnum">5.2. </span> Conflicts between native markup semantics and <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr></h3><p class="permalink"><a href="#mapping_conflicts" title="Permalink for Conflicts between native markup semantics and WAI-ARIA">#</a></p>
<p><abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> roles, states, and properties are intended to add <a href="#def_semantics" class="termref">semantic</a> information when native host language <a class="termref" href="#def_element">elements</a> with these semantics are not available, and are generally used on elements that have no native semantics of their own. They can also be used on elements that have similar but not identical semantics to the intended object (for instance, a nested list could be used to represent a tree structure). This method can be part of a fallback strategy for older browsers that have no <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> implementation, or because native presentation of the repurposed element reduces the amount of style and/or script needed. Except for the cases outlined below, <a href="#def_useragent" class="termref">user agents</a> <strong class="rfc2119">MUST</strong> always use the <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> semantics to define how it exposes the element to <a class="termref" href="#def_accessibility_api">accessibility <abbr title="Application Programming Interfaces">APIs</abbr></a>, rather than using the host language semantics.</p>
<p>Host languages can have features that have implicit <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> semantics corresponding to <a href="#def_role" class="termref">roles</a>. When a <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> role is provided that has a corresponding role in the accessibility <abbr title="Application Programming Interface">API</abbr>, user agents <strong class="rfc2119">MUST</strong> use the semantic of the <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> role for processing, not the native semantic, unless the role requires <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> states and properties whose attributes are explicitly forbidden on the native element by the host language. Values for roles do not conflict in the same way as values for states and properties, and because authors are expected to have valid reason to provide a <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> role even on elements that would not normally be repurposed. For example, spin buttons are typically constructed from text fields (<code><input type="text"></code>) in order to get most of the default keyboard support. But, the native role, "text field", isn't correct because it doesn't properly communicate the additional features of a spin button. The author will add the <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> role of spinbutton (<code><input type="text" role="spinbutton" ...></code>) so that the control gets properly mapped in the accessibility <abbr title="Application Programming Interface">API</abbr>. When a <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> role is provided that does not have a corresponding role in the accessibility <abbr title="Application Programming Interface">API</abbr>, user agents <strong class="rfc2119">MAY</strong> expose the native semantic in addition to the <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> role.</p>
<p class="ednote">Editorial Note: The above text differs slightly from the <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> specification. The requirement for user agents to expose the <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> role instead of the native role was intended to only apply in cases where there is a direct mapping from the <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> role to a corresponding role in the accessibility <abbr title="Application Programming Interface">API</abbr>. The wording of the requirement is not clear in the <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> specification, however, and has been interpreted differently by implementers. The requirement has been clarified here and an additional statement added to indicate that user agents may expose native semantics if there is not a direct mapping to a role in the accessibility <abbr title="Application Programming Interface">API</abbr>. Because there are differing implementations, authors will be advised against adding such <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> roles to native elements that have their own semantics in the <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> Authoring Practices Guide.</p>
<p>When <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> states and properties correspond to host language features that have the same implicit <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> semantic, it can be problematic if the values become out of sync. For example, the <abbr title="Hypertext Markup Language">HTML</abbr> <code>checked</code> attribute and the <code>aria-checked</code> attribute could have conflicting values. Therefore to prevent providing conflicting states and properties to assistive technologies, host languages will explicitly declare where the use of <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> attributes on a host language element conflict with native attributes for that element. When a host language declares a <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> <a class="termref" href="#def_attribute">attribute</a> to be in direct semantic conflict with a native attribute for a given element, user agents <strong class="rfc2119">MUST</strong> ignore the <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> attribute and instead use the host language attribute with the same implicit semantic. </p>
<p>Host languages might also document features that cannot be overridden with <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> (these are called "strong native semantics"). These can be features that have implicit <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> semantics as well as features where the processing would be uncertain if the semantics were changed with <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr>. While conformance checkers might signal an error or warning when a <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> role is used on elements with strong native semantics, user agents <strong class="rfc2119">MUST</strong> still use the value of the semantic of the <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> role when exposing the element to accessibility <abbr title="Application Programming Interfaces">APIs</abbr>.</p>
</div>
<div class="section" id="mapping_nodirect">
<h3><span class="tocnum">5.3. </span> Exposing attributes that do not directly map to accessibility <abbr title="application programing interface">API</abbr> properties</h3><p class="permalink"><a href="#mapping_nodirect" title="Permalink for Exposing attributes that do not directly map to accessibility API properties">#</a></p>
<p>Platform <a class="termref" href="#def_accessibility_api">accessibility <abbr title="application programing interfaces">APIs</abbr></a> might have features that are not in <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr>. Likewise, <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> exposes capabilities that are not supported by accessibility <abbr title="Application Programming Interfaces">APIs</abbr> at the time of publication. There typically is not a one to one relationship between all <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> <a class="termref" href="#def_attribute">attributes</a> and platform accessibility <abbr title="application programing interfaces">APIs</abbr>. When <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> <a href="#def_role" class="termref">roles</a>, <a href="#def_state" class="termref">states</a> and <a href="#def_property" class="termref">properties</a> do not directly map to an accessibility <abbr title="application programing interface">API</abbr>, and there is a mechanism in the <abbr title="application programing interface">API</abbr> to expose the <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> role, states, and properties and their <a href="#def_value" class="termref">values</a>, <a href="#def_useragent" class="termref">user agents</a> <strong class="rfc2119">MUST</strong> expose the <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> data using that mechanism as follows: </p>
<ul><li>In IAccessible2 and <abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology - Service Provider Interface">AT-SPI</abbr>, use object attributes to expose <a href="#def_semantics" class="termref">semantics</a> that are not directly supported in the <abbr title="application programing interfaces">APIs</abbr>. Object attributes are name-value pairs that are loosely specified, and very flexible for exposing things where there is no specific interface in an accessibility <abbr title="application programing interface">API</abbr>. For example, at this time, the <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-live"><code>aria-live</code></a> attribute can be exposed via an object attribute because accessibility <abbr title="application programing interfaces">APIs</abbr> have no such property available. Specific rules for exposing object attribute name-value pairs are described throughout this document, and rules for the general cases are in <a href="#mapping_state-property">State and Property Mapping</a>.</li><li>In Microsoft <abbr title="User Interface Automation">UIA</abbr>, use the <code>AriaRole</code> and <code>AriaProperties</code> properties to expose semantics that are not directly supported in the control patterns.</li></ul>
<p class="ednote">Editorial Note: MSAA does not provide a mechanism for exposing attributes that do not map directly to the <abbr title="application programing interface">API</abbr> and among implementers, there is no agreement on how to do it.</p>
<p>User agents <strong class="rfc2119">MUST</strong> also expose the entire role string through this mechanism and <strong class="rfc2119">MAY</strong> also expose <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> attributes and values through this mechanism even when there is a direct mapping to an accessibility <abbr title="application programming interface">API</abbr>.</p>
<p>Browser implementers are advised to publicly document their <abbr title="application programing interface">API</abbr> methods for exposing any relevant information, so that <a class="termref" href="#def_at">assistive technology</a> developers can use the <abbr title="application programing interface">API</abbr> to support user features.</p>
</div>
<div class="section" id="mapping_role">
<h3><span class="tocnum">5.4. </span> Role mapping</h3><p class="permalink"><a href="#mapping_role" title="Permalink for Role mapping">#</a></p>
<p>Platform <a class="termref" href="#def_accessibility_api">accessibility <abbr title="Application Programming Interfaces">APIs</abbr></a> traditionally have had a finite set of predefined <a href="#def_role" class="termref">roles</a> that are expected by <a class="termref" href="#def_at">assistive technologies</a> on that platform and only one or two roles may be exposed. In contrast, <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> allows multiple roles to be specified as an ordered set of space-separated valid role tokens. The additional roles are fallback roles similar to the concept of specifying multiple fonts in case the first choice font type is not supported.</p>
<p>The following rules describe how to expose WAI-ARIA roles using the accessibility <abbr title="application programing interface">API</abbr>:</p>
<ol><li>For the standard role mechanism of the accessibility <abbr title="application programing interface">API</abbr>, the user agent <strong class="rfc2119">MUST</strong> use the first token in the sequence of tokens in the role <a class="termref" href="#def_attribute">attribute</a> <a href="#def_value" class="termref">value</a> which matches, on comparison, the name of any non-abstract <abbr title="Accessible Internet Application">WAI-ARIA</abbr> role. Use the <a href="#mapping_role_table">Role Mapping Table</a> below and apply any special case rules that are specified. When a matching role is found, user agents <strong class="rfc2119">MUST</strong> use it to override any implicit role inferred from the host language markup in performing this mapping, unless the role requires <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> <a href="#def_state" class="termref">states</a> and <a href="#def_property" class="termref">properties</a> whose attributes are explicitly forbidden on the native <a class="termref" href="#def_element">element</a> by the host language. Note that this overriding does not result in any changes in the <abbr title="Document Object Model">DOM</abbr>, only in the accessibility <abbr title="Application Programming Interface">API</abbr> representation of the page. Note that in the absence of author-supplied scripts, the presence of <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> roles might not make sense. But user agents <strong class="rfc2119">MUST</strong> map <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> roles even in the absence of author-supplied scripts.
<p>The following steps will correctly identify the applicable <abbr title="Accessible Rich Internet Applicatiaon">WAI-ARIA</abbr> role:</p>
<ol><li>Use the rules of the host language to detect that an element has a role attribute and to identify the attribute value string for it.</li><li>Separate the attribute value string for that attribute into a sequence of whitespace-free substrings by separating on whitespace.</li><li>Do a comparison of the substrings to all the names of the non-abstract <abbr title="Accessible Rich Internet Applicatiaon">WAI-ARIA</abbr> roles. Case-sensitivity of the comparison inherits from the case-sensitivity of the host language.</li><li>Use the first such substring in textual order that matches the name of a non-abstract <abbr title="Accessible Rich Internet Applicatiaon">WAI-ARIA</abbr> role for the <abbr title="application programing interface">API</abbr> role mapping. See the <a href="#mapping_role_table">Role Mapping Table</a> below for details.</li></ol>
</li><li>User agents <strong class="rfc2119">MUST NOT</strong> map roles defined in the <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> specification as "abstract" via the standard role mechanism of the accessibility <abbr title="application programing interface">API</abbr>. The abstract roles are:
<ul><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#command"><code>command</code></a></li><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#composite"><code>composite</code></a></li><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#input"><code>input</code></a></li><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#landmark"><code>landmark</code></a></li><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#range"><code>range</code></a></li><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#roletype"><code>roletype</code></a></li><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#section"><code>section</code></a></li><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#sectionhead"><code>sectionhead</code></a></li><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#select"><code>select</code></a></li><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#structure"><code>structure</code></a></li><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#widget"><code>widget</code></a></li><li><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#window"><code>window</code></a></li></ul>
</li><li>If the element does not have a role attribute, or if the role attribute contains no tokens matching the name of a non-abstract <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> role, the user agent <strong class="rfc2119">MUST</strong> fall back on normal processing of the base markup for the element with the role attribute. For example, for <samp><table role="foo"></samp> use the element name <code>table</code> to determine what platform accessibility <abbr title="application programing interface">API</abbr> role to use according to the host language's role mapping. For <samp><input type="text" role="bar"></samp>, use the platform accessibility <abbr title="application programing interface">API</abbr> for a text input.</li><li>When an explicit or inherited role of <code>presentation</code> is applied to an element, the user agent <strong class="rfc2119">MUST</strong> implement the rules for <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#presentation"><code>presentation</code></a> <a href="#def_role" class="termref">role</a> defined in <cite><a href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/">Accessible Rich Internet Applications (WAI-ARIA) 1.0</a></cite> [<cite><a href="#ref_ARIA">ARIA</a></cite>]. </li><li>User agents <strong class="rfc2119">MUST</strong> expose the <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> role string if the <abbr title="application programing interface">API</abbr> supports a mechanism to do so. This allows assistive technologies to do their own additional processing of roles.
<ul><li>
<abbr title="Microsoft Active Accessibility">MSAA</abbr>
: not supported</li><li>IAccessible2: expose as an object attribute pair (<code>xml-roles:"string"</code>)</li><li><abbr title="User Interface Automation">UIA</abbr>: expose as <code>AriaRole</code> property. The <code>AriaRole property</code> can also support secondary roles using a space as a separator.</li><li><abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology - Service Provider Interface">AT-SPI</abbr>: expose as an object attribute pair (<code>xml-roles:"string"</code>)</li></ul>
</li><li>Platform accessibility <abbr title="application programing interfaces">APIs</abbr> typically do not provide a vehicle to notify assistive technologies that a role has changed. Due to this and document caching, assistive technologies are unlikely to process a change in role attribute value. Authors who wish to change a role are advised by the <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> specification to delete the associated element and its children and replace it with a new element having the appropriate role. If a role is changed, however, user agents <strong class="rfc2119">SHOULD</strong> update the mapping in order to reflect the content in the <abbr title="Document Object Model">DOM</abbr>. Since assistive technologies will not know that the role has changed, a user agents <strong class="rfc2119">MAY</strong> address this error condition by treating it as removing a subtree item and inserting a new one as described in <a href="#mapping_events_visibility">Changes to document content or node visibility</a>.</li></ol>
<div class="section" id="mapping_role_table">
<h4><span class="tocnum">5.4.1. </span> Role Mapping Table</h4><p class="permalink"><a href="#mapping_role_table" title="Permalink for Role Mapping Table">#</a></p>
<table summary="First column is WAI-ARIA role, followed by mappings to the following accessibility APIs: MSAA, IAccessible2, UI Automation, ATK, and MAC Accessibility" border="1" width="90%"><caption>Table describing mapping of <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> roles to accessibility <abbr title="application programing interfaces">APIs</abbr>.</caption><thead><tr><th rowspan="1" colspan="1"><abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> role</th><th rowspan="1" colspan="1"><abbr title="Microsoft Active Accessibility">MSAA</abbr> + UIA Express role</th><th rowspan="1" colspan="1">MSAA + IAccessible2 role and other IAccessible2 features</th><th rowspan="1" colspan="1"><abbr title="User Interface Automation">UIA</abbr> Control Pattern Type</th><th rowspan="1" colspan="1"><abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology - Service Provider Interface">AT-SPI</abbr> role</th><th rowspan="1" colspan="1"><p>Mac OS X </p>
<p>AXRole<br clear="none"/>
AXSubrole<br clear="none"/>
AXRoleDescription<sup>[<a href="#ftn.note1">Note 1</a>]</sup></p></th></tr></thead><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#alert"><code>alert</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_ALERT</code><br clear="none"/>
<p>The <a href="#def_useragent" class="termref">user agent</a> <strong class="rfc2119">SHOULD</strong> fire <code>EVENT_SYSTEM_ALERT</code> <sup>[<a href="#ftn.note2">Note 2</a>]</sup></p></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_ALERT</code><br clear="none"/>
<p>The user agent <strong class="rfc2119">SHOULD</strong> fire <code>EVENT_SYSTEM_ALERT</code> <sup>[<a href="#ftn.note2">Note 2</a>]</sup></p></td><td rowspan="1" colspan="1"><code>Text</code><br clear="none"/>
<p>The user agent <strong class="rfc2119">SHOULD</strong> fire a system alert <a href="#def_event" class="termref">event</a>.<sup>[<a href="#ftn.note2">Note 2</a>]</sup></p></td><td rowspan="1" colspan="1"><code>ROLE_ALERT</code><br clear="none"/>
<p>The user agent <strong class="rfc2119">SHOULD</strong> fire a system alert event.<sup>[<a href="#ftn.note2">Note 2</a>]</sup></p></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXApplicationAlert</code><br clear="none"/>
<code>'alert'</code>
<p>The user agent <strong class="rfc2119">SHOULD</strong> fire a system alert event.<sup>[<a href="#ftn.note2">Note 2</a>]</sup></p></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#alertdialog"><code>alertdialog</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_DIALOG</code><br clear="none"/>
<p>The user agent <strong class="rfc2119">SHOULD</strong> fire <code>EVENT_SYSTEM_ALERT</code> <sup>[<a href="#ftn.note2">Note 2</a>]</sup></p></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_DIALOG</code><br clear="none"/>
<p>The user agent <strong class="rfc2119">SHOULD</strong> fire <code>EVENT_SYSTEM_ALERT</code> <sup>[<a href="#ftn.note2">Note 2</a>]</sup></p></td><td rowspan="1" colspan="1"><code>Window</code><br clear="none"/>
<p>The user agent <strong class="rfc2119">SHOULD</strong> fire a system alert event.<sup>[<a href="#ftn.note2">Note 2</a>]</sup></p></td><td rowspan="1" colspan="1"><code>ROLE_DIALOG</code><br clear="none"/>
<p>The user agent <strong class="rfc2119">SHOULD</strong> fire a system alert event.<sup>[<a href="#ftn.note2">Note 2</a>]</sup></p></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXApplictionAlertDialog</code><br clear="none"/>
<code> 'alert dialog'</code>
<p>The user agent <strong class="rfc2119">SHOULD</strong> fire a system alert event.<sup>[<a href="#ftn.note2">Note 2</a>]</sup></p></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#application"><code>application</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_APPLICATION</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_APPLICATION</code></td><td rowspan="1" colspan="1"><code>Pane</code></td><td rowspan="1" colspan="1"><code>ROLE_EMBEDDED</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXLandmarkApplication</code><br clear="none"/>
<code>'application'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#article"><code>article</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_DOCUMENT</code> + <code>STATE_SYSTEM_READONLY</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_DOCUMENT</code> + <code>STATE_SYSTEM_READONLY</code></td><td rowspan="1" colspan="1">Expose as text string in <code>AriaRole</code></td><td rowspan="1" colspan="1"><code>ROLE_DOCUMENT_FRAME</code> + do not expose <code>STATE_EDITABLE</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXDocumentArticle</code><br clear="none"/>
<code>'article'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#banner"><code>banner</code></a></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Object attribute <code>xml-roles:banner</code></td><td rowspan="1" colspan="1">Expose as text string in <code>AriaRole</code></td><td rowspan="1" colspan="1">Object attribute <code>xml-roles:</code><code>banner</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXLandmarkBanner</code><br clear="none"/>
<code>'banner'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#button"><code>button</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_PUSHBUTTON</code>.
<p>If <code><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-haspopup"><code>aria-haspopup</code></a>="true"</code> it <strong class="rfc2119">SHOULD</strong> be exposed as a <code>ROLE_SYSTEM_BUTTONMENU</code></p></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_PUSHBUTTON</code>.
<p>If <code><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-haspopup"><code>aria-haspopup</code></a>="true"</code> it <strong class="rfc2119">SHOULD</strong> be exposed as a <code>ROLE_SYSTEM_BUTTONMENU</code></p>
If <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-pressed"><code>aria-pressed</code></a> is not <strong>undefined</strong>, it <strong class="rfc2119">SHOULD</strong> be exposed as <code>IA2_ROLE_TOGGLE_BUTTON</code></td><td rowspan="1" colspan="1"><code>Button</code></td><td rowspan="1" colspan="1"><code>ROLE_PUSH_BUTTON</code></td><td rowspan="1" colspan="1"><code>AXButton</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'button'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#checkbox"><code>checkbox</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_CHECKBUTTON</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_CHECKBUTTON</code>
<p>Object attribute <code>checkable:true</code></p></td><td rowspan="1" colspan="1"><code>Checkbox</code></td><td rowspan="1" colspan="1"><code>ROLE_CHECK_BOX</code> + object attribute <code>checkable:true</code></td><td rowspan="1" colspan="1"><code>AXCheckBox</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'check box'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#columnheader"><code>columnheader</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_COLUMNHEADER</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_COLUMNHEADER</code>
<p>Used to help support <a href="http://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/interface_i_accessible_table2.html"><code>AccessibleTable</code></a> for the container <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#grid"><code>grid</code></a> role</p></td><td rowspan="1" colspan="1"><code>DataItem</code></td><td rowspan="1" colspan="1"><code>ROLE_COLUMN_HEADER</code></td><td rowspan="1" colspan="1"><p><code>AXCell</code> or <code>AXSortButton</code> if using <code>aria-sort</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'cell</code>'</p>
<p>Parent table also implements<br clear="none"/>
<code>AXColumnHeaderUIElements</code> property that is a<br clear="none"/>
list of pointers to the column header cells.</p>
<p>Parent table also implements <code>AXHeader</code> property that is a pointer to the row or group containing the columnheader cells.</p></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#combobox"><code>combobox</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_COMBOBOX</code> + <code>STATE_SYSTEM_HASPOPUP</code>.
<p>If <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-expanded"><code>aria-expanded</code> (state)</a> is not <code>"true"</code>, expose <code>STATE_SYSTEM_COLLAPSED</code></p></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_COMBOBOX</code> + <code>STATE_SYSTEM_HASPOPUP</code>.
<p>If <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-expanded"><code>aria-expanded</code> (state)</a> is not <code>"true"</code>, expose <code>STATE_SYSTEM_COLLAPSED</code></p></td><td rowspan="1" colspan="1"><code>Combobox</code></td><td rowspan="1" colspan="1"><code>ROLE_COMBO_BOX</code> + <code>STATE_EXPANDABLE</code> + object attribute <code>haspopup:true</code></td><td rowspan="1" colspan="1"><code>AXComboBox</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'combo box'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#complementary"><code>complementary</code></a></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Object attribute <code>xml-roles:complementary</code></td><td rowspan="1" colspan="1">Expose as text string in <code>AriaRole</code></td><td rowspan="1" colspan="1">Object attribute <code>xml-roles:</code><code>complementary</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXLandmarkComplementary</code><br clear="none"/>
<code>'complementary'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#contentinfo"><code>contentinfo</code></a></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Object attribute <code>xml-roles:contentinfo</code></td><td rowspan="1" colspan="1">Expose as text string in <code>AriaRole</code></td><td rowspan="1" colspan="1">Object attribute <code>xml-roles:</code><code>contentinfo</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXLandmarkContentInfo</code><br clear="none"/>
<code>'content'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#definition"><code>definition</code></a></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Object attribute <code>xml-roles:definition</code></td><td rowspan="1" colspan="1">Expose as text string in <code>AriaRole</code></td><td rowspan="1" colspan="1">Object attribute <code>xml-roles:definition</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXDefinition</code><br clear="none"/>
<code>'definition'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#dialog"><code>dialog</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_DIALOG</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_DIALOG</code></td><td rowspan="1" colspan="1"><code>Window</code></td><td rowspan="1" colspan="1"><code>ROLE_DIALOG</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXApplicationDialog</code><br clear="none"/>
<code>'dialog'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#directory"><code>directory</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_LIST</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_LIST</code></td><td rowspan="1" colspan="1"><code>List</code></td><td rowspan="1" colspan="1"><code>ROLE_LIST</code></td><td rowspan="1" colspan="1"><code>AXList</code><br clear="none"/>
<code>AXContentList</code><br clear="none"/>
<code>'content list'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#document"><code>document</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_DOCUMENT</code> + <code>STATE_SYSTEM_READONLY</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_DOCUMENT</code> + <code>STATE_SYSTEM_READONLY</code></td><td rowspan="1" colspan="1"><code>Document</code></td><td rowspan="1" colspan="1"><code>ROLE_DOCUMENT_FRAME</code> + do not expose <code>STATE_EDITABLE</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXDocument</code><br clear="none"/>
<code>'document'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#form"><code>form</code></a></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>IA2_ROLE_FORM</code></td><td rowspan="1" colspan="1">Expose as text string in <code>AriaRole</code></td><td rowspan="1" colspan="1"><code>ROLE_FORM</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'group'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#grid"><code>grid</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_TABLE</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_TABLE</code>
<p>Use <code>IAccessibleTable2</code> interface</p></td><td rowspan="1" colspan="1"><p><code>DataGrid</code></p>
<p>Also requires <code>selection</code> pattern</p></td><td rowspan="1" colspan="1"><code>ROLE_TABLE</code></td><td rowspan="1" colspan="1"><code>AXTable</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'table'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#gridcell"><code>gridcell</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_CELL</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_CELL</code></td><td rowspan="1" colspan="1"><code>DataItem</code>
<p>Also requires <code>selectionitem</code> pattern; <code>selectionContainer</code> property must reference the parent <code>grid</code> object</p></td><td rowspan="1" colspan="1"><code>ROLE_TABLE_CELL</code></td><td rowspan="1" colspan="1"><code>AXCell</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'cell'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#group"><code>group</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_GROUPING</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_GROUPING</code></td><td rowspan="1" colspan="1"><code>Group</code></td><td rowspan="1" colspan="1"><code>ROLE_PANEL</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'group'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#heading"><code>heading</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_TEXT</code> <br clear="none"/>
or use <code>xml-roles</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_TEXT </code> <br clear="none"/>
or use <code>xml-roles</code><p><code>IA2_ROLE_HEADING</code></p></td><td rowspan="1" colspan="1"><code>Text</code></td><td rowspan="1" colspan="1"><code>ROLE_HEADING</code></td><td rowspan="1" colspan="1"><code>AXHeading</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'heading'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#img"><code>img</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_GRAPHIC</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_GRAPHIC</code></td><td rowspan="1" colspan="1"><code>Image</code></td><td rowspan="1" colspan="1"><code>ROLE_IMAGE</code></td><td rowspan="1" colspan="1"><code>AXImage</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'image'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#link"><code>link</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_LINK</code>.
<p>Also, apply special rule to expose <code>STATE_LINKED</code> to link and all its descendants.</p></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_LINK</code>.
<p>Also, apply special rule to expose <code>STATE_LINKED</code> to link and all its descendants</p>
Use <code>AccessibleHypertext</code> interface</td><td rowspan="1" colspan="1"><code>HyperLink</code></td><td rowspan="1" colspan="1"><code>ROLE_LINK</code></td><td rowspan="1" colspan="1"><code>AXLink</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'link'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#list"><code>list</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_LIST</code> + <code>STATE_SYSTEM_READONLY</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_LIST</code> + <code>STATE_SYSTEM_READONLY</code></td><td rowspan="1" colspan="1"><p><code>List</code></p>
<p>When the <code>list</code> contains <code>listitems</code>, it must implement the <code>selection</code> pattern.</p></td><td rowspan="1" colspan="1"><code>ROLE_LIST</code> + do not expose <code>STATE_EDITABLE</code></td><td rowspan="1" colspan="1"><code>AXList</code><br clear="none"/>
<code>AXContentList</code><br clear="none"/>
<code>'content list'</code></td></tr><tr><td rowspan="1" colspan="1"><p><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#listbox"><code>listbox</code></a></p>
<p>If child of or owned by a <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#combobox"><code>combobox</code></a>, expose as menu</p></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_LIST</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_LIST</code></td><td rowspan="1" colspan="1"><code>List</code></td><td rowspan="1" colspan="1"><code>ROLE_LIST</code>. Special case: if a <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#listbox"><code>listbox</code></a> has a parent or is owned by (via <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-owns"><code>aria-owns</code></a>) a <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#combobox"><code>combobox</code></a>, it <strong class="rfc2119">SHOULD</strong> be exposed with <code>ROLE_MENU</code>.</td><td rowspan="1" colspan="1"><code>AXList</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'list'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#listitem"><code>listitem</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_LISTITEM</code> + <code>STATE_SYSTEM_READONLY</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_LISTITEM</code> + <code>STATE_SYSTEM_READONLY</code></td><td rowspan="1" colspan="1"><p><code>ListItem</code></p>
<p>Also requires <code>selectionitem</code> pattern; <code>selectionContainer</code> property must reference the parent <code>list</code> object</p></td><td rowspan="1" colspan="1"><code>ROLE_LISTITEM</code> + do not expose <code>STATE_EDITABLE</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'group'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#log"><code>log</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_PANE</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_PANE</code>
+ object attributes <code>xml-roles:log</code><code>;container-live:polite;live:polite;container-live-role:log</code></td><td rowspan="1" colspan="1"><code>Pane</code></td><td rowspan="1" colspan="1"><p><code>ROLE_NOTHING</code> + object attributes <code>xml-roles:log;container-live:polite;live:polite;container-live-role:log</code>
</p>
<p> </p></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXApplicationLog</code><br clear="none"/>
<code>'log'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#main"><code>main</code></a></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Object attribute <code>xml-roles:main</code></td><td rowspan="1" colspan="1">Expose as text string in <code>AriaRole</code></td><td rowspan="1" colspan="1">Object attribute <code>xml-roles:main</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXLandmarkMain</code><br clear="none"/>
<code>'main'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#marquee"><code>marquee</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_ANIMATION</code> <br clear="none"/>
or use <code>xml-roles</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_ANIMATION</code> + object attribute <code>xml-roles:marquee;container-live:off;live:off</code></td><td rowspan="1" colspan="1"><code>Text</code></td><td rowspan="1" colspan="1"><code>ROLE_ANIMATION</code> + object attributes <code>container-live:off;live:off</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXApplicationMarquee</code><br clear="none"/>
<code>'marquee'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#math"><code>math</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_EQUATION</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_EQUATION</code></td><td rowspan="1" colspan="1">Expose as text string in <code>AriaRole</code></td><td rowspan="1" colspan="1"><code>ROLE_UNKNOWN</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXDocumentMath</code><br clear="none"/>
<code>'math'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#menu"><code>menu</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_MENUPOPUP</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_MENUPOPUP</code></td><td rowspan="1" colspan="1"><code>Menu</code></td><td rowspan="1" colspan="1"><p><code>ROLE_MENU</code>. </p>
<p>These <a href="#def_object" class="termref">objects</a> <strong class="rfc2119">SHOULD NOT</strong> be exposed for a submenu if there is a parent menu item spawning the submenu</p></td><td rowspan="1" colspan="1"><code>AXMenu</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'menu'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#menubar"><code>menubar</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_MENUBAR</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_MENUBAR</code></td><td rowspan="1" colspan="1"><code>MenuBar</code></td><td rowspan="1" colspan="1"><code>ROLE_MENU_BAR</code></td><td rowspan="1" colspan="1"><code>AXMenuBar</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'menu bar'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#menuitem"><code>menuitem</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_MENUITEM</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_MENUITEM</code></td><td rowspan="1" colspan="1"><code>MenuItem</code></td><td rowspan="1" colspan="1"><code>ROLE_MENU_ITEM</code>
<p>If <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-checked"><code>aria-checked</code> (state)</a> is not <strong>undefined</strong>, support object attribute <code>checkable:true</code></p>
</td><td rowspan="1" colspan="1">If the option's parent has a <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#group"><code>group</code></a> role, then <code>role="menuitem"</code> maps to <code>AXMenuButton</code>
<p>If the option's parent has a <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#menu"><code>menu</code></a> role, then <code>role="menuitem"</code> maps to <code>AXMenuItem</code></p>
<p><code>AXMenuItem</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'menu item</code>'</p></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#menuitemcheckbox"><code>menuitemcheckbox</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_CHECKBUTTON</code> or <code>ROLE_SYSTEM_MENUITEM</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_CHECKBUTTON</code> or <code>ROLE_SYSTEM_MENUITEM</code>
<p><code>IA2_ROLE_CHECK_MENU_ITEM</code> + object attribute <code>checkable:true</code></p></td><td rowspan="1" colspan="1"><code>Checkbox</code></td><td rowspan="1" colspan="1"><code>ROLE_CHECK_MENU_ITEM</code> + object attribute <code>checkable:true</code></td><td rowspan="1" colspan="1"><p><code>AXMenuItem</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'menu item</code>'</p>
<p>If <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-checked"><code>aria-checked</code> (state)</a><code>="true"</code>: <code>AXMenuItemMarkChar</code> ✓<br clear="none"/>
Otherwise: <code>AXMenuItemMarkChar</code> <code><nil></code></p></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#menuitemradio"><code>menuitemradio</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_RADIOBUTTON</code> or <code>ROLE_SYSTEM_MENUITEM</code></td><td rowspan="1" colspan="1"><p><code>ROLE_SYSTEM_RADIOBUTTON</code> or <code>ROLE_SYSTEM_MENUITEM</code></p>
<p><code>IA2_ROLE_RADIO_MENU_ITEM</code> + object attribute <code>checkable:true</code></p></td><td rowspan="1" colspan="1"><code>RadioButton</code></td><td rowspan="1" colspan="1"><code>ROLE_RADIO_MENU_ITEM</code> + object attribute <code>checkable:true</code></td><td rowspan="1" colspan="1"><p><code>AXMenuItem</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'menu item</code>'</p>
<p>If <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-checked"><code>aria-checked</code> (state)</a><code>="true"</code>: <code>AXMenuItemMarkChar</code> ✓.<br clear="none"/>
Otherwise: <code>AXMenuItemMarkChar</code> <code><nil></code></p></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#navigation"><code>navigation</code></a></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Object attribute <code>xml-roles:navigation</code></td><td rowspan="1" colspan="1">Expose as text string in <code>AriaRole</code></td><td rowspan="1" colspan="1">Object attribute <code>xml-roles:navigation</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXLandmarkNavigation</code><br clear="none"/>
<code>'navigation'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#note"><code>note</code></a></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>IA2_ROLE_NOTE</code></td><td rowspan="1" colspan="1">Expose as text string in <code>AriaRole</code></td><td rowspan="1" colspan="1">Object attribute <code>xml-roles:note</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXDocumentNote</code><br clear="none"/>
<code>'note'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#option"><code>option</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_LISTITEM</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_LISTITEM</code>
<p>If <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-checked"><code>aria-checked</code> (state)</a> is not <strong>undefined</strong>, support object attribute <code>checkable:true</code></p></td><td rowspan="1" colspan="1"><code>ListItem</code></td><td rowspan="1" colspan="1"><code>ROLE_LIST_ITEM</code>
<p>If <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-checked"><code>aria-checked</code> (state)</a> is not <strong>undefined</strong>, support object attribute <code>checkable:true</code></p>
<p>Special case: if an <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#option"><code>option</code></a> has a parent that was exposed as an <code>ROLE_MENU</code>, the <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#option"><code>option</code></a> <strong class="rfc2119">SHOULD</strong> be exposed as an <code>ROLE_MENU_ITEM</code></p></td><td rowspan="1" colspan="1">If the option's parent has a <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#menu"><code>menu</code></a> role, then <code>role="option"</code> maps to <code>AXMenuItem</code>
<p>If the option's parent has a <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#listbox"><code>listbox</code></a> role, then <code>role="option"</code> maps to <code>AXStaticText</code></p>
<p><code>AXStaticText</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'text</code>'</p></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#presentation"><code>presentation</code></a></td><td rowspan="1" colspan="1">If the object is in the accessibility tree, expose as <code>ROLE_SYSTEM_PANE</code>
<p>See <a href="#mapping_general">General rules for exposing <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> semantics</a></p></td><td rowspan="1" colspan="1">If the object is in the accessibility tree, expose as <code>ROLE_SYSTEM_PANE</code>
<p>See <a href="#mapping_general">General rules for exposing <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> semantics</a></p></td><td rowspan="1" colspan="1"><p>If the object is in the accessibility tree, expose as <code>Pane</code></p>
<p>See <a href="#mapping_general">General rules for exposing <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> semantics</a></p></td><td rowspan="1" colspan="1"><p>If the object is in the accessibility tree, expose as <code>ATK_ROLE_PANEL</code></p>
<p>See <a href="#mapping_general">General rules for exposing <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> semantics</a></p></td><td rowspan="1" colspan="1"><p>Not mapped</p>
<p>See <a href="#mapping_general">General rules for exposing <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> semantics</a></p></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#progressbar"><code>progressbar</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_PROGRESSBAR</code> + <code>STATE_SYSTEM_READONLY</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_PROGRESSBAR</code> + <code>STATE_SYSTEM_READONLY</code></td><td rowspan="1" colspan="1"><code>ProgressBar</code></td><td rowspan="1" colspan="1"><code>ROLE_PROGRESS_BAR</code> + do not expose <code>STATE_EDITABLE</code></td><td rowspan="1" colspan="1"><code>AXProgressIndicator</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'progress indicator'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#radio"><code>radio</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_RADIOBUTTON</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_RADIOBUTTON</code></td><td rowspan="1" colspan="1"><code>RadioButton</code></td><td rowspan="1" colspan="1"><code>ROLE_RADIO_BUTTON</code></td><td rowspan="1" colspan="1"><code>AXRadioButton</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'radio button'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#radiogroup"><code>radiogroup</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_GROUPING</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_GROUPING</code></td><td rowspan="1" colspan="1"><code>Group</code></td><td rowspan="1" colspan="1"><code>ROLE_PANEL</code></td><td rowspan="1" colspan="1"><code>AXRadioGroup</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'radio group'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#region"><code>region</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_PANE</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_PANE</code></td><td rowspan="1" colspan="1"><code>Pane</code></td><td rowspan="1" colspan="1"><code>ROLE_PANEL</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXDocumentRegion</code><br clear="none"/>
<code>'region'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#row"><code>row</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_ROW</code> unless inside a <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#tree"><code>tree</code></a> or <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#treegrid"><code>treegrid</code></a>, in which case <code>ROLE_SYSTEM_OUTLINEITEM</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_ROW</code> unless inside a <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#tree"><code>tree</code></a> or <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#treegrid"><code>treegrid</code></a>, in which case <code>ROLE_SYSTEM_OUTLINEITEM</code>
<p>Used to help support: <code>IAccessibleTable2</code> interface for the container <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#grid"><code>grid</code></a> role</p></td><td rowspan="1" colspan="1"><p><code>DataItem</code></p>
<p>Also requires <code>selectionitem</code> pattern</p></td><td rowspan="1" colspan="1"><code>ROLE_LIST_ITEM</code></td><td rowspan="1" colspan="1"><code>AXRow</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'row'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#rowgroup"><code>rowgroup</code></a></td><td rowspan="1" colspan="1"><p>Not mapped</p>
<p>Note: the <code>rowgroup</code> role exists to support role symmetry in <abbr title="Hypertext Markup Language">HTML</abbr>, and allows for the propagation of presentation inheritance on tables with an explicit presentation role applied.</p></td><td rowspan="1" colspan="1"><p>Not mapped</p>
<p>Note: the <code>rowgroup</code> role exists to support role symmetry in <abbr title="Hypertext Markup Language">HTML</abbr>, and allows for the propagation of presentation inheritance on tables with an explicit presentation role applied.</p></td><td rowspan="1" colspan="1"><p>Not mapped</p>
<p>Note: the <code>rowgroup</code> role exists to support role symmetry in <abbr title="Hypertext Markup Language">HTML</abbr>, and allows for the propagation of presentation inheritance on tables with an explicit presentation role applied.</p></td><td rowspan="1" colspan="1"><p>Not mapped</p>
<p>Note: the <code>rowgroup</code> role exists to support role symmetry in <abbr title="Hypertext Markup Language">HTML</abbr>, and allows for the propagation of presentation inheritance on tables with an explicit presentation role applied.</p></td><td rowspan="1" colspan="1"><p>No mapping</p>
<p>Note: the <code>rowgroup</code> role exists to support role symmetry in <abbr title="Hypertext Markup Language">HTML</abbr>, and allows for the propagation of presentation inheritance on tables with an explicit presentation role applied.</p></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#rowheader"><code>rowheader</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_ROWHEADER</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_ROWHEADER</code>
<p>Used to help support <code>IAccessibleTable2</code> interface for the container <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#grid"><code>grid</code></a> role</p></td><td rowspan="1" colspan="1"><code>DataItem</code></td><td rowspan="1" colspan="1"><code>ROLE_ROW_HEADER</code></td><td rowspan="1" colspan="1"><p><code>AXCell</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'cell</code>'</p>
<p>Parent table also implements <code>AXRowHeaderUIElements</code> property that is a list of pointers to the row header cells</p></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#scrollbar"><code>scrollbar</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_SCROLLBAR</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_SCROLLBAR</code></td><td rowspan="1" colspan="1">Expose as text string in <code>AriaRole</code></td><td rowspan="1" colspan="1"><code>ROLE_SCROLLBAR</code></td><td rowspan="1" colspan="1"><code>AXScrollBar</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'scroll bar'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#search"><code>search</code></a></td><td rowspan="1" colspan="1"> </td><td rowspan="1" colspan="1"> </td><td rowspan="1" colspan="1">Expose as text string in <code>AriaRole</code></td><td rowspan="1" colspan="1">Object attribute <code>xml-roles:search</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXLandmarkSearch</code><br clear="none"/>
<code>'search'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#separator"><code>separator</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_SEPARATOR</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_SEPARATOR</code></td><td rowspan="1" colspan="1"><code>Separator</code></td><td rowspan="1" colspan="1"><code>ROLE_SEPARATOR</code></td><td rowspan="1" colspan="1"><code>AXSplitter</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'splitter'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#slider"><code>slider</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_SLIDER</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_SLIDER</code></td><td rowspan="1" colspan="1"><code>Slider</code></td><td rowspan="1" colspan="1"><code>ROLE_SLIDER</code></td><td rowspan="1" colspan="1"><code>AXSplitter</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'splitter'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#spinbutton"><code>spinbutton</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_SPINBUTTON</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_SPINBUTTON</code></td><td rowspan="1" colspan="1"><code>Spinner</code></td><td rowspan="1" colspan="1"><code>ROLE_SPIN_BUTTON</code></td><td rowspan="1" colspan="1"><code>AXIncrementor</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'stepper'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#status"><code>status</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_STATUSBAR</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_STATUSBAR</code> + object attributes <code>container-live:polite;live:polite;container-live-role:status</code></td><td rowspan="1" colspan="1"><code>StatusBar</code></td><td rowspan="1" colspan="1"><code>ROLE_STATUSBAR</code> + object attributes <code>container-live:polite;live:polite;container-live-role:status</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXApplicationStatus</code><br clear="none"/>
<code>'status'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#tab"><code>tab</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_PAGETAB</code>.
<p>Expose <code>SELECTED</code> state if focus is inside <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#tabpanel"><code>tabpanel</code></a> associated with <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-labelledby"><code>aria-labelledby</code></a>.</p></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_PAGETAB</code>.
<p>Expose <code>SELECTED</code> state if focus is inside <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#tabpanel"><code>tabpanel</code></a> associated with <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-labelledby"><code>aria-labelledby</code></a>.</p></td><td rowspan="1" colspan="1"><code>TabItem</code></td><td rowspan="1" colspan="1"><code>ROLE_PAGE_TAB</code>. Expose <code>SELECTED</code> state if focus is inside <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#tabpanel"><code>tabpanel</code></a> associated with <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-labelledby"><code>aria-labelledby</code></a>.</td><td rowspan="1" colspan="1"><code>AXRadioButton</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'tab'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#tablist"><code>tablist</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_PAGETABLIST</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_PAGETABLIST</code> + object attributes <code>container-live:polite;live:polite;container-live-role:tablist</code></td><td rowspan="1" colspan="1"><p><code>Tab</code></p>
<p>Also requires <code>selection</code> pattern</p></td><td rowspan="1" colspan="1"><code>ROLE_PAGE_TAB_LIST</code> + object attributes <code>container-live:polite;live:polite;container-live-role:tablist</code></td><td rowspan="1" colspan="1"><code>AXTabGroup</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'tabgroup'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#tabpanel"><code>tabpanel</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_PANE</code> or <code>ROLE_SYSTEM_PROPERTYPAGE</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_PANE</code> or <code>ROLE_SYSTEM_PROPERTYPAGE</code></td><td rowspan="1" colspan="1"><code>Pane</code></td><td rowspan="1" colspan="1"><code>ROLE_SCROLL_PANE</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>TabPanel</code><br clear="none"/>
<code>'tab panel'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#textbox"><code>textbox</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_TEXT</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_TEXT</code>
<p><code>IA2_STATE_SINGLE_LINE</code> if <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-multiline"><code>aria-multiline</code></a> is not <code>"true"</code></p></td><td rowspan="1" colspan="1"><code>Document</code></td><td rowspan="1" colspan="1"><code>ROLE_ENTRY</code> + <code>STATE_SINGLE_LINE</code> if <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-multiline"><code>aria-multiline</code></a> is not <code>"true"</code></td><td rowspan="1" colspan="1"><p>If <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-multiline"><code>aria-multiline</code></a><code>="false"</code> (default) use:<br clear="none"/>
<code>AXTextField</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'text field</code>'</p>
<p>If <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-multiline"><code>aria-multiline</code></a><code>="true"</code> use:<br clear="none"/>
<code>AXTextArea</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'text entry area</code>'</p></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#timer"><code>timer</code></a></td><td rowspan="1" colspan="1"> </td><td rowspan="1" colspan="1">Object attribute <code>xml-roles:timer;container-live:off;live:off;container-live-role:timer</code></td><td rowspan="1" colspan="1">Expose as text string in <code>AriaRole</code></td><td rowspan="1" colspan="1"><code>ROLE_UNKNOWN</code> + object attributes <code>container-live:off;live:off;container-live-role:timer</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXApplicationTimer</code><br clear="none"/>
<code>'timer'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#toolbar"><code>toolbar</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_TOOLBAR</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_TOOLBAR</code></td><td rowspan="1" colspan="1"><code>ToolBar</code></td><td rowspan="1" colspan="1"><code>ROLE_TOOL_BAR</code></td><td rowspan="1" colspan="1"><code>AXToolbar</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'toolbar'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#tooltip"><code>tooltip</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_TOOLTIP</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_TOOLTIP</code></td><td rowspan="1" colspan="1"><code>ToolTip</code></td><td rowspan="1" colspan="1"><code>ROLE_TOOL_TIP</code></td><td rowspan="1" colspan="1"><code>AXGroup</code><br clear="none"/>
<code>AXUserInterfaceTooltip</code><br clear="none"/>
<code>'tooltip'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#tree"><code>tree</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_OUTLINE</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_OUTLINE</code></td><td rowspan="1" colspan="1"><code>Tree</code></td><td rowspan="1" colspan="1"><code>ROLE_TREE</code></td><td rowspan="1" colspan="1"><code>AXOutline</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'outline'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#treegrid"><code>treegrid</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_OUTLINE</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_OUTLINE</code>
<p>Use <code>IAccessibleTable2</code> interface
</p> <p>Object attribute <code>xml-roles:treegrid</code></p>
</td><td rowspan="1" colspan="1"><code>DataGrid</code></td><td rowspan="1" colspan="1"><code>ROLE_TREE_TABLE</code></td><td rowspan="1" colspan="1"><code>AXTable</code><br clear="none"/>
<code><nil></code><br clear="none"/>
<code>'table'</code></td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#treeitem"><code>treeitem</code></a></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_OUTLINEITEM</code></td><td rowspan="1" colspan="1"><code>ROLE_SYSTEM_OUTLINEITEM</code>
<p>If <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-checked"><code>aria-checked</code> (state)</a> is not <strong>undefined</strong>, support object attribute <code>checkable:true</code></p></td><td rowspan="1" colspan="1"><code>TreeItem</code></td><td rowspan="1" colspan="1"><code>ROLE_LIST_ITEM</code> + if <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-checked"><code>aria-checked</code></a> is not <strong>undefined</strong>, support object attribute <code>checkable:true</code></td><td rowspan="1" colspan="1"><code>AXRow</code><br clear="none"/>
<code>AXOutlineRow</code><br clear="none"/>
<code>'outline row'</code></td></tr></table>
<div class="note"><p>
<sup>[<a name="ftn.note1" href="#ftn.note1">Note 1</a>]</sup>
User agent should return a user-presentable, localized string value for the AXRoleDescription.</p>
</div>
<div class="ednote">
<p><sup>[<a name="ftn.note2" href="#ftn.note2">Note 2</a>]</sup> Editorial Note: This specification does not currently contain guidance for when user agents should fire system alert events. Some guidance may be added to the specification at a later date but it will be a recommendation (<strong class="rfc2119">SHOULD</strong>), not a requirement (<strong class="rfc2119">MUST</strong>).</p>
</div>
</div>
</div>
<div class="section" id="mapping_state-property">
<h3><span class="tocnum">5.5. </span> State and Property Mapping</h3><p class="permalink"><a href="#mapping_state-property" title="Permalink for State and Property Mapping">#</a></p>
<p>This section describes how to expose <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> <a href="#def_state" class="termref">states</a> and <a href="#def_object" class="termref">object</a> <a href="#def_property" class="termref">properties</a>. </p>
<ol><li><a href="#def_useragent" class="termref">User agents</a> <strong class="rfc2119">MUST</strong> compute <a href="#def_managedstate" class="termref">managed states</a> <code>VISIBLE</code>/<code>INVISIBLE</code>, <code>SHOWING</code>/<code>OFFSCREEN</code>, etc. This typically is done in the same way as for ordinary <a class="termref" href="#def_element">elements</a> that do not have <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> attributes present. The <code>FOCUSABLE</code>/<code>FOCUSED</code> states may be affected by <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-activedescendant"><code>aria-activedescendant</code></a>. See the rules in <a href="#keyboard-focus_aria-activedescendant">Controlling focus with <code>aria-activedescendant</code></a>.</li><li>User agents <strong class="rfc2119">MUST</strong> continue to expose native semantics in addition to <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> state and property semantics except where an explicit WAI-ARIA override is allowed by the host language. For example, an <abbr title="Hypertext Markup Language">HTML</abbr> checkbox may have an <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-labelledby"><code>aria-labelledby</code></a> attribute but the native <abbr title="Hypertext Markup Language">HTML</abbr> semantics must still be exposed. </li><li>User agents <strong class="rfc2119">MUST</strong> expose additional states for certain <a href="#def_role" class="termref">roles</a> as defined in the <a href="#mapping_role_table">Role Mapping Table</a>.</li><li>User agents <strong class="rfc2119">MUST</strong> compute states for the relevant <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> <a class="termref" href="#def_attribute">attributes</a> and map to the <a class="termref" href="#def_accessibility_api">accessibility <abbr title="Application Programming Interface">API</abbr></a> as specified in the <a href="#mapping_state-property_table">State and Property Mapping Table</a>. To determine the relevant <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> attributes, refer to the <cite><a href="http://www.w3.org/TR/wai-aria/roles#role_definitions">Definition of Roles</a></cite> [<cite><a href="#ref_ARIA">ARIA</a></cite>]. Where the author has not provided values for required attributes, user agents <strong class="rfc2119">SHOULD</strong> process as if the default <a href="#def_value" class="termref">value</a> as indicated in column 1 was provided. </li><li>For forward compatibility with new <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> properties in future versions, user agents <strong class="rfc2119">SHOULD</strong> expose all properties not in the table below as a text string, removing the "<code>aria-</code>" prefix from the name, if the <abbr title="Application Programming Interface">API</abbr> supports it. For example, <samp>aria-foo="bar"</samp> would be exposed with a text string <code>foo=bar</code> in <abbr title="User Interface Automation">UIA</abbr>, since <code>aria-foo</code> is not a currently known <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> property. The following list specifies the accessibility <abbr title="application programing interfaces">APIs</abbr> for exposing properties as text strings.
<ul><li><abbr title="Microsoft Active Accessibility">MSAA</abbr>: not supported</li><li>IAccessible2: expose as an object attribute pair ( <code>property:string</code>)</li><li><abbr title="User Interface Automation">UIA</abbr>: expose an object attribute pair in <code>AriaProperties</code> (<code>property=string</code>) </li><li><abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology-Service Provider Interface">AT-SPI</abbr>: expose as an object attribute pair (<code>property:string</code>) </li></ul>
</li><li>Some <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> properties are not global, and are only supported on certain roles. If a non-global <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> state or property is used where it is not supported, user agents <strong class="rfc2119">SHOULD NOT</strong> map the given <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> property to the platform accessibility <abbr title="application programing interface">API</abbr>. For example, if <code>aria-checked="true"</code> is specified on <code><div role="grid"></code>, it should not be exposed in <abbr title="Microsoft Active Accessibility">MSAA</abbr> implementations as <code>STATE_SYSTEM_CHECKED</code>. User agents <strong class="rfc2119">MAY</strong> expose non-relevant attributes as a text string if the <abbr title="Application Programming Interface">API</abbr> supports it as described above.</li><li>When an explicit or inherited role of <code>presentation</code> is applied to an element, the user agent <strong class="rfc2119">MUST</strong> implement the rules for <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#presentation"><code>presentation</code></a> <a href="#def_role" class="termref">role</a> defined in <cite><a href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/">Accessible Rich Internet Applications (WAI-ARIA) 1.0</a></cite> [<cite><a href="#ref_ARIA">ARIA</a></cite>].</li></ol>
<div class="section" id="mapping_state-property_table">
<h4><span class="tocnum">5.5.1. </span> State and Property Mapping Table</h4><p class="permalink"><a href="#mapping_state-property_table" title="Permalink for State and Property Mapping Table">#</a></p>
<table summary="First column is WAI-ARIA state or property and value, if applicable, followed by mappings to the following accessibility APIs: MSAA, IAccessible2, UI Automation, ATK, and MAC Accessibility" border="1" width="50%"><caption>
<abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> state and property mapping rule table
</caption><tbody><tr><th rowspan="1" colspan="1"><abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> State or Property</th><th rowspan="1" colspan="1"><abbr title="Microsoft Active Accessibility">MSAA + UIA Express</abbr></th><th rowspan="1" colspan="1">MSAA + IAccessible2 </th><th rowspan="1" colspan="1"><abbr title="User Interface Automation">UIA</abbr></th><th rowspan="1" colspan="1"><abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology-Service Provider Interface">AT-SPI</abbr></th><th rowspan="1" colspan="1">Mac OS X</th></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-activedescendant"><code>aria-activedescendant</code></a></td><td rowspan="1" colspan="1">See <a href="#keyboard-focus_aria-activedescendant">Controlling focus with <code>aria-activedescendant</code></a>, <a href="#keyboard-focus_at">Handling focus changes from the Assistive Technology</a>, and ID Reference Error Processing in <a href="#mapping_additional_relations">Relations</a>.
<p>In cases, however, the focus can be transparent in an accessibility tree as it may be exposed as focus delegation from the container element to the child <a href="#def_object" class="termref">object</a> that takes active focus. This is represented by an <a href="#def_accessible_object" class="termref">accessible object</a> that comes with <code>STATE_SYSTEM_FOCUSED</code> state. When this happens, standard focus <a href="#def_event" class="termref">event</a> and event handling should apply.</p></td><td rowspan="1" colspan="1">See <a href="#keyboard-focus_aria-activedescendant">Controlling focus with <code>aria-activedescendant</code></a>, <a href="#keyboard-focus_at">Handling focus changes from the Assistive Technology</a>, and ID Reference Error Processing in <a href="#mapping_additional_relations">Relations</a>. <p>In cases, however, the focus can be transparent in an accessibility tree as it may be exposed as focus delegation from the container element to the child object that takes active focus. This is represented by an accessible object that comes with <code>STATE_SYSTEM_FOCUSED</code> state. When this happens, standard focus event and event handling should apply.</p></td><td rowspan="1" colspan="1">See <a href="#keyboard-focus_aria-activedescendant">Controlling focus with <code>aria-activedescendant</code></a>, <a href="#keyboard-focus_at">Handling focus changes from the Assistive Technology</a>, and ID Reference Error Processing in <a href="#mapping_additional_relations">Relations</a>.</td><td rowspan="1" colspan="1">See <a href="#keyboard-focus_aria-activedescendant">Controlling focus with <code>aria-activedescendant</code></a>, <a href="#keyboard-focus_at">Handling focus changes from the Assistive Technology</a>, and ID Reference Error Processing in <a href="#mapping_additional_relations">Relations</a>. <p>In cases, however, the focus can be transparent in an accessibility tree as it may be exposed as focus delegation from the container element to the child object that takes active focus. This is represented by an accessible object that comes with <code>HasKeyboardFocus</code> state. When this happens, standard focus event and event handling should apply.</p></td><td rowspan="1" colspan="1"><code>array AXSelectedRows</code> contains pointer to active descendant node</td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-atomic"><code>aria-atomic</code></a><code>="true"</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><p>Expose object attribute <code>atomic:true</code>. </p>
<p>In addition, expose object attribute <code>container-atomic:true</code> on all descendants as well as <code>IA2_RELATION_MEMBER_OF</code> pointing to this element (the atomic root) as described in <a href="#mapping_events_visibility">Changes to document content or node visibility</a>.</p></td><td rowspan="1" colspan="1">Expose <code>atomic=true</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1"><p>Expose object attribute <code>atomic:true</code>. </p>
<p>In addition, expose object attribute <code>container-atomic:true</code> on all descendants as well as <code>RELATION_MEMBER_OF</code> pointing to this element (the atomic root) as described in <a href="#mapping_events_visibility">Changes to document content or node visibility</a>.</p></td><td rowspan="1" colspan="1"><code>boolean AXARIAAtomic</code></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-atomic"><code>aria-atomic</code></a><code>="false"</code> (default)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Expose <code>atomic=false</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>boolean AXARIAAtomic</code></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-autocomplete"><code>aria-autocomplete</code></a><code>="inline"</code>, <code>"list"</code>, or <code>"both"</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Object attribute <code>autocomplete:<value></code>
<p>Expose the <code>IA2_STATE_SUPPORTS_AUTOCOMPLETION</code> equivalent state</p></td><td rowspan="1" colspan="1">Expose <code>autocomplete=<value></code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Object attribute <code>autocomplete:<value></code>
<p>Expose the <code>SUPPORTS_AUTOCOMPLETION</code> equivalent state</p></td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-autocomplete"><code>aria-autocomplete</code></a><code>="none"</code> (default)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-busy"><code>aria-busy</code></a><code>="true"</code> (state)</td><td rowspan="1" colspan="1">Expose the <code>STATE_SYSTEM_BUSY</code> state</td><td rowspan="1" colspan="1">Expose the <code>STATE_SYSTEM_BUSY</code> state</td><td rowspan="1" colspan="1">Expose <code>busy=true</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Expose the <code>STATE_BUSY</code> state</td><td rowspan="1" colspan="1"><code>boolean AXARIABusy</code></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-busy"><code>aria-busy</code></a><code>="false"</code> (state) (default)</td><td rowspan="1" colspan="1">Clear the <code>STATE_SYSTEM_BUSY</code> state</td><td rowspan="1" colspan="1">Clear the <code>STATE_SYSTEM_BUSY</code> state</td><td rowspan="1" colspan="1">Expose <code>busy=false</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Clear the <code>STATE_BUSY</code> state</td><td rowspan="1" colspan="1"><code>boolean AXARIABusy</code></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-checked"><code>aria-checked</code></a><code>="true"</code> (state)</td><td rowspan="1" colspan="1">Set the <code>STATE_SYSTEM_CHECKED</code> state</td><td rowspan="1" colspan="1">Set the <code>STATE_SYSTEM_CHECKED</code> state
<p>Expose object attribute <code>checkable:true</code></p></td><td rowspan="1" colspan="1">Expose as <code>ToggleState</code> property in <code>Toggle</code> Control Pattern</td><td rowspan="1" colspan="1">Expose object attribute <code>checkable:true</code></td><td rowspan="1" colspan="1"><code>AXValue: 1</code></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-checked"><code>aria-checked</code></a><code>="false"</code> (state)</td><td rowspan="1" colspan="1">Clear the <code>STATE_SYSTEM_CHECKED</code> state</td><td rowspan="1" colspan="1">Clear the <code>STATE_SYSTEM_CHECKED</code> state
<p>Expose object attribute <code>checkable:true</code></p></td><td rowspan="1" colspan="1">Expose as <code>ToggleState</code> property in <code>Toggle</code> Control Pattern.</td><td rowspan="1" colspan="1">Expose object attribute <code>checkable:true</code></td><td rowspan="1" colspan="1"><code>AXValue: 0</code></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-checked"><code>aria-checked</code></a><code>="mixed"</code> (state)
<p>Treat as <code>"false"</code> on <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#radio"><code>radio</code></a> and <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#menuitemradio"><code>menuitemradio</code></a> roles</p></td><td rowspan="1" colspan="1">Set the <code>STATE_SYSTEM_MIXED</code> state</td><td rowspan="1" colspan="1">Set the <code>STATE_SYSTEM_MIXED</code> state
<p>Expose object attribute <code>checkable:true</code></p></td><td rowspan="1" colspan="1">Expose as <code>ToggleState</code> property in <code>Toggle</code> Control Pattern.</td><td rowspan="1" colspan="1">Expose <code>STATE_INDETERMINATE</code>/<code>STATE_SYSTEM_MIXED</code>, unless on a role of <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#radio"><code>radio</code></a> or <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#menuitemradio"><code>menuitemradio</code></a> (in those cases treat as <code>"false"</code>)
<p>Expose object attribute <code>checkable:true</code></p></td><td rowspan="1" colspan="1"><code>AXValue: 2</code></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-checked"><code>aria-checked</code></a> is undefined (state)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-controls"><code>aria-controls</code></a></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Expose pointer to the accessible object in <code>IA2_RELATION_CONTROLLER_FOR</code>
<p>Expose reverse relations as described in <a href="#mapping_additional_relations">Relations</a>.</p></td><td rowspan="1" colspan="1">Expose pointer to the accessible object <code>ControllerFor</code> property</td><td rowspan="1" colspan="1">Expose pointer to the accessible object <code>RELATION_CONTROLLER_FOR</code>
<p>Expose reverse relations as described in <a href="#mapping_additional_relations">Relations</a>.</p></td><td rowspan="1" colspan="1"><code>array AXLinkedUIElements</code> contains pointers to nodes matching IDREFs</td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-describedby"><code>aria-describedby</code></a></td><td rowspan="1" colspan="1">Use in calculating the accessible Description as described in <a href="#mapping_additional_nd">Name Computation</a>. Expose in <code>accDescription</code> property.</td><td rowspan="1" colspan="1">Use in calculating the accessible Description as described in <a href="#mapping_additional_nd">Name Computation</a>. Expose in <code>accDescription</code> property.
<p>If the object is in the accessibility tree, expose pointer to the accessible object in <code>IA2_RELATION_DESCRIBED_BY</code>
</p>
<p>Expose reverse relations as described in <a href="#mapping_additional_relations">Relations</a>.</p></td><td rowspan="1" colspan="1"><p>Use in calculating the accessible Description as described in <a href="#mapping_additional_nd">Name Computation</a>.</p>
<p>Expose pointer to the accessible object in <code>DescribedBy</code> property.</p></td><td rowspan="1" colspan="1">Use in calculating the accessible Description as described in <a href="#mapping_additional_nd">Name Computation</a>. Expose pointer to the accessible object in <code>RELATION_DESCRIBED_BY</code>
<p>Expose reverse relations as described in <a href="#mapping_additional_relations">Relations</a>.</p></td><td rowspan="1" colspan="1">Use in calculating the accessible Description as described in <a href="#mapping_additional_nd">Name Computation</a>. Expose in <code>string AXDescription</code> (reserved for non-visible accessible name or calculated description)</td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-disabled"><code>aria-disabled</code></a><code>="true"</code> (state)</td><td rowspan="1" colspan="1">Set <code>STATE_SYSTEM_UNAVAILABLE</code>
<p>Expose <code>STATE_SYSTEM_SENSITIVE</code> + <code>STATE_SYSTEM_ENABLED</code></p>
<p>Propagate to all descendants of the element with <code>STATE_SYSTEM_FOCUSABLE</code></p></td><td rowspan="1" colspan="1">Set <code>STATE_SYSTEM_UNAVAILABLE</code>
<p>Expose <code>STATE_SYSTEM_SENSITIVE</code> + <code>STATE_SYSTEM_ENABLED</code></p>
<p>Propagate to all descendants of the element with <code>STATE_SYSTEM_FOCUSABLE</code></p></td><td rowspan="1" colspan="1">Set <code>IsEnabled</code> to <code>"false"</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>boolean AXEnabled</code></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-disabled"><code>aria-disabled</code></a><code>="false"</code> (state) (default)</td><td rowspan="1" colspan="1">Clear <code>STATE_SYSTEM_UNAVAILABLE</code></td><td rowspan="1" colspan="1">Clear <code>STATE_SYSTEM_UNAVAILABLE</code></td><td rowspan="1" colspan="1">Set <code>IsEnabled</code> to <code>"true"</code></td><td rowspan="1" colspan="1">Expose <code>STATE_ENABLED</code></td><td rowspan="1" colspan="1"><code>boolean AXEnabled</code></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-dropeffect"><code>aria-dropeffect</code></a><code>="copy"</code>, <code>"move"</code>, <code>"link"</code>, <code>"execute"</code>, or <code>"popup"</code> (state)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Expose as object attribute <code>dropeffect:<value></code></td><td rowspan="1" colspan="1">Expose <code>dropeffect=<value></code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Expose as object attribute <code>dropeffect:<value></code></td><td rowspan="1" colspan="1"><code>array AXDropEffects</code></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-dropeffect"><code>aria-dropeffect</code></a><code>="none"</code> (state) (default)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><p>Expose as object attribute <code>dropeffect:none</code> if there are no other valid tokens.</p>
<p>Not mapped if not specified by the author.</p></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><p>Expose as object attribute <code>dropeffect:none</code> if there are no other valid tokens.</p>
<p>Not mapped if not specified by the author.</p></td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-expanded"><code>aria-expanded</code></a><code>="true"</code> (state)</td><td rowspan="1" colspan="1">Set <code>STATE_SYSTEM_EXPANDED</code></td><td rowspan="1" colspan="1">Set <code>STATE_SYSTEM_EXPANDED</code></td><td rowspan="1" colspan="1">Expose as <code>ExpandCollapseState</code> property of <code>ExpandCollapse</code> Control Pattern</td><td rowspan="1" colspan="1">Expose <code>STATE_EXPANDABLE</code> and <code>STATE_EXPANDED</code></td><td rowspan="1" colspan="1"><code>boolean AXExpanded</code></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-expanded"><code>aria-expanded</code></a><code>="false"</code> (state)</td><td rowspan="1" colspan="1">Set <code>STATE_SYSTEM_COLLAPSED</code></td><td rowspan="1" colspan="1">Set <code>STATE_SYSTEM_COLLAPSED</code></td><td rowspan="1" colspan="1">Expose as <code>ExpandCollapseState</code> property of <code>ExpandCollapse</code> Control Pattern</td><td rowspan="1" colspan="1">Expose <code>STATE_EXPANDABLE</code></td><td rowspan="1" colspan="1"><code>boolean AXExpanded</code></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-expanded"><code>aria-expanded</code></a> is undefined (state) (default)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-flowto"><code>aria-flowto</code></a></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Expose reference to the accessible object in <code>IA2_RELATION_FLOW_TO</code>
<p>Expose reverse relations as described in <a href="#mapping_additional_relations">Relations</a>.</p></td><td rowspan="1" colspan="1">Expose a reference to the accessible object in <code>FlowsTo</code> property</td><td rowspan="1" colspan="1">Expose reference to the accessible object in <code>RELATION_FLOWS_TO</code>
<p>Expose reverse relations as described in <a href="#mapping_additional_relations">Relations</a>.</p></td><td rowspan="1" colspan="1"><code>array AXLinkedUIElements</code> contains pointer to nodes matching IDREFs</td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-grabbed"><code>aria-grabbed</code></a><code>="true"</code>(state)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Object attribute <code>grabbed:true</code></td><td rowspan="1" colspan="1">Expose as <code>grabbed=true</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Object attribute <code>grabbed:true</code></td><td rowspan="1" colspan="1"><code>boolean AXGrabbed</code></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-grabbed"><code>aria-grabbed</code></a><code>="false"</code>(state)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Object attribute <code>grabbed:false</code></td><td rowspan="1" colspan="1">Expose as <code>grabbed=false</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Object attribute <code>grabbed:false</code></td><td rowspan="1" colspan="1"><code>boolean AXGrabbed</code></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-grabbed"><code>aria-grabbed</code></a> is undefined (state) (default)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-haspopup"><code>aria-haspopup</code></a><code>="true"</code> (default for role <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#combobox"><code>combobox</code></a>)</td><td rowspan="1" colspan="1">Expose as <code>STATE_SYSTEM_HASPOPUP</code>. If on a push button, change the role to <code>ROLE_SYSTEM_BUTTONMENU</code>.</td><td rowspan="1" colspan="1">Expose as <code>STATE_SYSTEM_HASPOPUP</code>. If on a push button, change the role to <code>ROLE_SYSTEM_BUTTONMENU</code>.</td><td rowspan="1" colspan="1">Expose state of the pop-up activities in the <code>ExpandCollapseState</code> property in the <code>ExpandCollapse</code> Control Pattern.</td><td rowspan="1" colspan="1">Object attribute <code>haspopup:true</code></td><td rowspan="1" colspan="1">Expose <code>AXShowMenu</code> and <code>AXPress</code> actions</td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-haspopup"><code>aria-haspopup</code></a><code>="false"</code> (default)</td><td rowspan="1" colspan="1">Clear the <code>HASPOPUP</code> state. If specified on a push button, change the role to <code>ROLE_SYSTEM_BUTTONMENU</code></td><td rowspan="1" colspan="1">Clear the <code>HASPOPUP</code> state. If specified on a push button, change the role to <code>ROLE_SYSTEM_BUTTONMENU</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-hidden"><code>aria-hidden</code></a><code>="true"</code> (state)</td><td rowspan="1" colspan="1"><p>See <a href="#include_elements">Including Elements in the Accessibility Tree</a>. </p>
<p>If the object is in the accessibility tree, map all attributes as normal.</p>
<p> </p></td><td rowspan="1" colspan="1"><p>See <a href="#include_elements">Including Elements in the Accessibility Tree</a>. </p>
<p>If the object is in the accessibility tree, map all attributes as normal. In addition, expose object attribute <code>hidden:true</code>.</p>
<p> </p></td><td rowspan="1" colspan="1">Expose as <code>hidden=true</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1"><p>See <a href="#include_elements">Including Elements in the Accessibility Tree</a>. </p>
<p>If the object is in the accessibility tree, map all attributes as normal. In addition, expose object attribute <code>hidden:true</code>.</p></td><td rowspan="1" colspan="1">Not exposed in <code>AX</code> <abbr title="application programming interface">API</abbr> unless focused. If focused, expose as normal.</td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-hidden"><code>aria-hidden</code></a><code>="false"</code> (state) (default)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-invalid"><code>aria-invalid</code></a><code>="true"</code>, <code>"spelling"</code>, or <code>"grammar"</code> (state)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Set <code>IA2_STATE_INVALID_ENTRY</code>.
<p>Expose the value as a text attribute (not object attribute).</p></td><td rowspan="1" colspan="1">Expose status in <code>IsDataValidForForm</code> property</td><td rowspan="1" colspan="1">Expose the value as a text attribute (not object attribute).</td><td rowspan="1" colspan="1"><code>string AXInvalid</code></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-invalid"><code>aria-invalid</code></a><code>="false"</code> (state) (default)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Clear <code>IA2_STATE_INVALID_ENTRY</code> or equivalent state.</td><td rowspan="1" colspan="1">Expose status in <code>IsDataValidForForm</code> property</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>string AXInvalid</code></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-label"><code>aria-label</code></a></td><td rowspan="1" colspan="1">Use in calculating the accessible name as described in <a href="#mapping_additional_nd">Name Computation</a>. Expose in <code>accName</code> property.</td><td rowspan="1" colspan="1">Use in calculating the accessible name as described in <a href="#mapping_additional_nd">Name Computation</a>. Expose in <code>accName</code> property.</td><td rowspan="1" colspan="1">Use in calculating the accessible name as described in <a href="#mapping_additional_nd">Name Computation</a>. Expose in <code>Name</code> property.</td><td rowspan="1" colspan="1">Use in calculating the accessible name as described in <a href="#mapping_additional_nd">Name Computation</a>. </td><td rowspan="1" colspan="1"><p>Calculate accessible name as described in <a href="#mapping_additional_nd">Name Computation</a>. Expose as <code>string AXDescription</code> (reserved for non-visible accessible name or calculated description)</p></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-labelledby"><code>aria-labelledby</code></a></td><td rowspan="1" colspan="1">Use in calculating the accessible name as described in <a href="#mapping_additional_nd">Name Computation</a>. Expose in <code>accName</code> property.</td><td rowspan="1" colspan="1"><p>Use in calculating the accessible name as described in <a href="#mapping_additional_nd">Name Computation</a>. Expose in <code>accName</code> property.</p>
<p>Expose a reference to the accessible object in <code>IA2_RELATION_LABELLED_BY</code>
</p>
<p>Expose reverse relations as described in <a href="#mapping_additional_relations">Relations</a>. </p></td><td rowspan="1" colspan="1"><p>Use in calculating the accessible name as described in <a href="#mapping_additional_nd">Name Computation</a>. Expose in <code>Name</code> property.</p>
<p>Expose a reference to the accessible object in the <code>LabeledBy</code> property.</p></td><td rowspan="1" colspan="1"><p>Use in calculating the accessible name as described in <a href="#mapping_additional_nd">Name Computation</a>. </p>
<p>Expose a reference to the accessible object in <code>RELATION_LABELLED_BY</code>
</p>
<p>Expose reverse relations as described in <a href="#mapping_additional_relations">Relations</a>. </p></td><td rowspan="1" colspan="1">Use in calculating the accessible name as described in <a href="#mapping_additional_nd">Name Computation</a>. Expose in <code>string AXTitle</code> (reserved for visible name)</td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-level"><code>aria-level</code></a></td><td rowspan="1" colspan="1">Expose the level by <code>accValue</code> property of an outline object. The structure should be reflected in the accessibility tree as directed by <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-level"><code>aria-level</code></a>.</td><td rowspan="1" colspan="1">Expose the level by <code>accValue</code> property of an outline object. The structure should be reflected in the accessibility tree as directed by <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-level"><code>aria-level</code></a>.
<p>Expose as object attribute <code>level:<value></code> and in <code>groupPosition</code>.
</p> <p>May affect <code>RELATION_NODE_CHILD_OF</code> when used on a tree item. See section <a href="#mapping_additional_position">Group Position</a>.</p></td><td rowspan="1" colspan="1">The tree hierarchy should be represented in the <code>Automation</code> Element structure as directed by <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-level"><code>aria-level</code></a>.</td><td rowspan="1" colspan="1">Expose as object attribute <code>level:<value></code></td><td rowspan="1" colspan="1"><code>integer AXValue</code></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-live"><code>aria-live</code></a><code>="assertive" </code> (default for role <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#alert"><code>alert</code></a>)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Expose as object attribute <code>live:assertive</code>.
<p>Expose as object attribute <code>container-live:assertive</code> on all descendants as described in <a href="#mapping_events_visibility">Changes to document content or node visibility</a>.</p></td><td rowspan="1" colspan="1">Expose <code>live=assertive</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Expose as object attribute <code>live</code>.
<p>Expose as object attribute <code>container-live:assertive</code> on all descendants as described in <a href="#mapping_events_visibility">Changes to document content or node visibility</a>.</p></td><td rowspan="1" colspan="1"><code>string AXARIALive</code></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-live"><code>aria-live</code></a><code>="polite"</code> (default for role types <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#log"><code>log</code></a> and <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#status"><code>status</code></a>)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Expose as object attribute <code>live:polite</code>.
<p>Expose as object attribute <code>container-live:polite</code> on all descendants as described in <a href="#mapping_events_visibility">Changes to document content or node visibility</a>.</p></td><td rowspan="1" colspan="1">Expose as <code>live=polite</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Expose as object attribute <code>live:polite</code>.
<p>Expose as object attribute <code>container-live:polite</code> on all descendants as described in <a href="#mapping_events_visibility">Changes to document content or node visibility</a>.</p></td><td rowspan="1" colspan="1"><code>string AXARIALive</code></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-live"><code>aria-live</code></a><code>="off"</code> (default)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Expose as object attribute <code>live:off</code>.
<p>Expose as object attribute <code>container-live:off</code> on all descendants as described in <a href="#mapping_events_visibility">Changes to document content or node visibility</a>.</p></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Expose as object attribute <code>live:off</code>.
<p>Expose as object attribute <code>container-live:off</code> on all descendants as described in <a href="#mapping_events_visibility">Changes to document content or node visibility</a>.</p></td><td rowspan="1" colspan="1"><code>string AXARIALive</code></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-multiline"><code>aria-multiline</code></a><code>="true"</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Set the <code>IA2_MULTI_LINE</code> state and clear <code>IA2_SINGLE_LINE</code></td><td rowspan="1" colspan="1">Expose as <code>multiline=true</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Set <code>STATE_MULTI_LINE</code> and clear <code>STATE_SINGLE_LINE</code></td><td rowspan="1" colspan="1"><p>Not mapped. </p>
<p>See <code>textbox</code> in the <a href="#mapping_role_table">Role Mapping Table</a> for more information.</p></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-multiline"><code>aria-multiline</code></a><code>="false"</code> (default)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Clear the <code>IA2_MULTI_LINE</code> state, and set <code>IA2_SINGLE_LINE</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Set <code>STATE_SINGLE_LINE</code> and clear <code>STATE_MULTI_LINE</code></td><td rowspan="1" colspan="1"><p>Not mapped</p>
<p>See <code>textbox</code> in the <a href="#mapping_role_table">Role Mapping Table</a> for more information.</p></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-multiselectable"><code>aria-multiselectable</code></a><code>="true"</code></td><td rowspan="1" colspan="1"><p>Set the <code>STATE_SYSTEM_MULTISELECTABLE</code> state. Expose <code>STATE_SYSTEM_EXTSELECTABLE</code> to exactly match <code>STATE_SYSTEM_MULTISELECTABLE</code>.</p>
<p>See <a href="#mapping_events_selection">Selection</a> for details.</p></td><td rowspan="1" colspan="1"><p>Set the <code>STATE_SYSTEM_MULTISELECTABLE</code> state. Expose <code>STATE_SYSTEM_EXTSELECTABLE</code> to exactly match <code>STATE_SYSTEM_</code><code>MULTISELECTABLE</code>.</p>
<p>For text elements, support the selection methods defined on the <code>IAccessibleText</code> interface</p> <p>See <a href="#mapping_events_selection">Selection</a> for details.</p></td><td rowspan="1" colspan="1"><p>Set <code>CanSelectMultiple</code> property on the <code>Selection</code> Control Pattern.</p>
<p>See <a href="#mapping_events_selection">Selection</a> for details.</p></td><td rowspan="1" colspan="1"><p>Expose <code>STATE_MULTISELECTABLE</code></p>
<p>See <a href="#mapping_events_selection">Selection</a> for details.</p></td><td rowspan="1" colspan="1"><p>Not mapped</p>
<p>See <a href="#mapping_events_selection">Selection</a> for details.</p></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-multiselectable"><code>aria-multiselectable</code></a><code>="false"</code> (default)</td><td rowspan="1" colspan="1">Clear the <code>STATE_SYSTEM_MULTISELECTABLE</code> state. Expose <code>STATE_SYSTEM_EXTSELECTABLE</code> to exactly match <code>MULTISELECTABLE</code>.</td><td rowspan="1" colspan="1">Clear the <code>STATE_SYSTEM_MULTISELECTABLE</code> state. Expose <code>STATE_SYSTEM_EXTSELECTABLE</code> to exactly match <code>STATE_SYSTEM_MULTISELECTABLE</code>.
<p>See <a href="#mapping_events_selection">Selection</a> for details.</p></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-orientation"><code>aria-orientation</code></a><code>="horizontal"</code> (default)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Set <code>IA2_STATE_HORIZONTAL</code></td><td rowspan="1" colspan="1">Expose as <code>orientation=horizontal</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Set <code>STATE_HORIZONTAL</code></td><td rowspan="1" colspan="1"><code>AXOrientation: AXHorizontalOrientation</code></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-orientation"><code>aria-orientation</code></a><code>="vertical"</code> (default for role <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#scrollbar"><code>scrollbar</code></a>)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Clear <code>IA2_STATE_HORIZONTAL</code></td><td rowspan="1" colspan="1">Expose as <code>orientation=vertical</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Set <code>STATE_VERTICAL</code></td><td rowspan="1" colspan="1"><code>AXOrientation: AXVerticalOrientation</code></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-owns"><code>aria-owns</code></a></td><td rowspan="1" colspan="1">The structure should be reflected in the accessibility tree as directed by <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-owns"><code>aria-owns</code></a>.
<p>If multiple <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-owns"><code>aria-owns</code></a> <a href="#def_relationship" class="termref">relationships</a> are found, use only the first one. </p></td><td rowspan="1" colspan="1"><p>The accessibility tree should not be modified.</p>
<p><code>IA2_RELATION_PARENT_WINDOW_OF</code> </p>
<p>Expose reverse relations as described in <a href="#mapping_additional_relations">Relations</a></p>
<p>If multiple <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-owns"><code>aria-owns</code></a> relationships are found, use only the first one. </p></td><td rowspan="1" colspan="1">The structure should be reflected in the accessibility tree as directed by <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-owns"><code>aria-owns</code></a>.
<p>If multiple <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-owns"><code>aria-owns</code></a> relationships are found, use only the first one. </p></td><td rowspan="1" colspan="1"><p>Expose reverse relations as described in <a href="#mapping_additional_relations">Relations</a></p>
<p>If multiple <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-owns"><code>aria-owns</code></a> relationships are found, use only the first one. </p></td><td rowspan="1" colspan="1"><code>array AXLinkedUIElements</code> contains pointer to nodes matching IDREFs</td></tr><tr><td rowspan="1" colspan="1"><p><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-posinset"><code>aria-posinset</code></a></p>
<p>If not provided for relevant roles, user agents calculate <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-setsize"><code>aria-setsize</code></a> and <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-posinset"><code>aria-posinset</code></a> for each object in the container based on the number of objects in the <abbr title="Document Object Model">DOM</abbr>.</p></td><td rowspan="1" colspan="1">The structure should be reflected in the accessibility tree as directed by <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-posinset"><code>aria-posinset</code></a>.</td><td rowspan="1" colspan="1">The structure should be reflected in the accessibility tree as directed by <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-posinset"><code>aria-posinset</code></a>.
<p>Expose as object attribute <code>posinset:<value></code> and in <code>groupPosition</code>.</p></td><td rowspan="1" colspan="1">The structure should be reflected in the accessibility tree as directed by <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-posinset"><code>aria-posinset</code></a>.</td><td rowspan="1" colspan="1">Expose as object attribute <code>posinset:<value></code>.</td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-pressed"><code>aria-pressed</code></a><code>="true"</code> (state)</td><td rowspan="1" colspan="1">Set the <code>STATE_SYSTEM_PRESSED</code> state.</td><td rowspan="1" colspan="1">Set the <code>STATE_SYSTEM_PRESSED</code> state.
<p>If on a button, expose the role as <code>IA2_ROLE_TOGGLE_BUTTON</code>.
</p> <p>Expose object attribute <code>checkable:true</code></p></td><td rowspan="1" colspan="1">Expose as <code>ToggleState property</code> of <code>Toggle</code> Control Pattern</td><td rowspan="1" colspan="1">If on a button, expose the role as <code>ROLE_TOGGLE_BUTTON</code>.
<p>Expose object attribute <code>checkable:true</code></p></td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-pressed"><code>aria-pressed</code></a><code>="mixed"</code> (state)</td><td rowspan="1" colspan="1">Set the <code>STATE_SYSTEM_PRESSED</code> state.</td><td rowspan="1" colspan="1">Set the <code>STATE_SYSTEM_PRESSED</code> state.
<p>If on a button, expose the role as <code>IA2_ROLE_TOGGLE_BUTTON</code>.
</p> <p>Expose object attribute <code>checkable:true</code></p></td><td rowspan="1" colspan="1">Expose as <code>ToggleState</code> property of <code>Toggle</code> Control Pattern</td><td rowspan="1" colspan="1">Expose <code>STATE_INDETERMINATE</code>/<code>STATE_SYSTEM_MIXED</code>. If on a button, expose the role as <code>ROLE_TOGGLE_BUTTON</code>.
<p>Expose object attribute <code>checkable:true</code></p></td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-pressed"><code>aria-pressed</code></a><code>="false"</code> (state)</td><td rowspan="1" colspan="1">Clear the <code>STATE_SYSTEM_PRESSED</code> state</td><td rowspan="1" colspan="1">Clear the <code>STATE_SYSTEM_PRESSED</code> state
<p>If on a button, expose the role as <code>IA2_ROLE_TOGGLE_BUTTON</code>.
</p> <p>Expose object attribute <code>checkable:true</code></p></td><td rowspan="1" colspan="1">Expose as <code>ToggleState</code> property of <code>Toggle</code> Control Pattern</td><td rowspan="1" colspan="1">If on a button, expose the role as <code>ROLE_TOGGLE_BUTTON</code>.
<p>Expose object attribute <code>checkable:true</code></p></td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-pressed"><code>aria-pressed</code></a> is undefined (state) (default)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><code><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-readonly"><code>aria-readonly</code></a>="true"</code></td><td rowspan="1" colspan="1">Expose as <code>STATE_SYSTEM_READONLY</code></td><td rowspan="1" colspan="1">Expose as <code>STATE_SYSTEM_READONLY</code>
<p>If on an element that is editable, (e.g. an <code>ENTRY</code> or supports the <code>IAccessibleEditableText</code> interface) make sure that <code>EDITABLE</code> is set to the logical opposite of <code>READONLY</code></p></td><td rowspan="1" colspan="1">Expose as <code>readonly=true</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">If on an element that is editable, (e.g. an <code>ENTRY</code> or supports the <code>IAccessibleEditableText</code> interface) make sure that <code>EDITABLE</code> is set to the logical opposite of <code>READONLY</code></td><td rowspan="1" colspan="1"><code>AXValue</code> (not writable)</td></tr><tr><td rowspan="1" colspan="1"><code><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-readonly"><code>aria-readonly</code></a>="false"</code> (default)</td><td rowspan="1" colspan="1">Expose as <code>STATE_SYSTEM_READONLY</code></td><td rowspan="1" colspan="1">Expose as <code>STATE_SYSTEM_READONLY</code>
<p>If on an element that is editable, (e.g. an <code>ENTRY</code> or supports the <code>IAccessibleEditableText</code> interface) make sure that <code>EDITABLE</code> is set to the logical opposite of <code>READONLY</code></p></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">If on an element that is editable, (e.g. an <code>ENTRY</code> or supports the <code>IAccessibleEditableText</code> interface) make sure that <code>EDITABLE</code> is set to the logical opposite of <code>READONLY</code></td><td rowspan="1" colspan="1"><code>AXValue</code> (writable)</td></tr><tr><td rowspan="1" colspan="1"><code><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-relevant"><code>aria-relevant</code></a>="additions"</code>, <code>"removals"</code>, <code>"text"</code>, or <code>"all"</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Expose as object attribute <code>relevant:<value></code>.
<p>Expose as object attribute <code>container-relevant:<value></code> on all descendants as described in <a href="#mapping_events_visibility">Changes to document content or node visibility</a>.</p></td><td rowspan="1" colspan="1">Expose as <code>relevant=<value></code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Expose as object attribute <code>relevant:<value></code>.
<p>Expose as object attribute <code>container-relevant:<value></code> on all descendants as described in <a href="#mapping_events_visibility">Changes to document content or node visibility</a>.</p></td><td rowspan="1" colspan="1"><code>string AXARIARelevant</code></td></tr><tr><td rowspan="1" colspan="1"><code><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-relevant"><code>aria-relevant</code></a>="additions text"</code> (Default)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><p>Expose as object attribute <code>relevant:<value></code>. </p>
<p>Expose as object attribute <code>container-relevant</code> on all descendants as described in <a href="#mapping_events_visibility">Changes to document content or node visibility</a>.</p></td><td rowspan="1" colspan="1">Expose as <code>relevant=additions text</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1"><p>Expose as object attribute <code>relevant:<value></code>. </p>
<p>Expose as object attribute <code>container-relevant</code> on all descendants as described in <a href="#mapping_events_visibility">Changes to document content or node visibility</a></p></td><td rowspan="1" colspan="1"><code>string AXARIARelevant</code></td></tr><tr><td rowspan="1" colspan="1"><code><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-required"><code>aria-required</code></a>="true"</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Expose <code>IA2_STATE_REQUIRED</code></td><td rowspan="1" colspan="1">Expose as <code>IsrequiredForForm</code> property.</td><td rowspan="1" colspan="1">Expose <code>STATE_REQUIRED</code></td><td rowspan="1" colspan="1"><code>boolean AXRequired</code></td></tr><tr><td rowspan="1" colspan="1"><code><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-required"><code>aria-required</code></a>="false" (default)</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-selected"><code>aria-selected</code></a><code>="true"</code> (state)</td><td rowspan="1" colspan="1">Expose <code>STATE_SYSTEM_SELECTED</code>
<p>Expose <code>STATE_SYSTEM_SELECTABLE</code></p></td><td rowspan="1" colspan="1">Expose <code>STATE_SYSTEM_SELECTED</code>
<p>Expose <code>STATE_SYSTEM_SELECTABLE</code></p>
<p>If not <code>DISABLED</code>, toggle between <code>"true"</code> and <code>"false"</code> as appropriate when <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-multiselectable"><code>aria-multiselectable</code></a> is used on an ancestor as described in <a href="#mapping_events_selection">Selection</a>.</p></td><td rowspan="1" colspan="1">Expose <code>IsSelected</code> property on <code>SelectionItem</code> Control Pattern.
<p>The availability of the <code>SelectionItem</code> Control Pattern indicates the item is selectable.</p></td><td rowspan="1" colspan="1">If not <code>DISABLED</code>, toggle between <code>"true"</code> and <code>"false"</code> as appropriate when the <code>AccessibleSelection</code> interface is used on an ancestor with <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-multiselectable"><code>aria-multiselectable</code></a> as described in <a href="#mapping_events_selection">Selection</a>. Expose <code>STATE_SELECTED</code></td><td rowspan="1" colspan="1"><code>boolean AXSelected</code></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-selected"><code>aria-selected</code></a><code>="false"</code> (state)</td><td rowspan="1" colspan="1">Clear <code>STATE_SYSTEM_SELECTED</code>
<p>Expose <code>STATE_SYSTEM_SELECTABLE</code></p></td><td rowspan="1" colspan="1">Clear <code>STATE_SYSTEM_SELECTED</code>
<p>Expose <code>STATE_SYSTEM_SELECTABLE</code></p>
<p>If not <code>DISABLED</code>, toggle between <code>"true"</code> and <code>"false"</code> as appropriate when the <code>AccessibleSelection</code> interface is used on an ancestor with <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-multiselectable"><code>aria-multiselectable</code></a> as described in <a href="#mapping_events_selection">Selection</a>.</p></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>boolean AXSelected</code></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-selected"><code>aria-selected</code></a> is undefined (state) (default)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><p><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-setsize"><code>aria-setsize</code></a></p>
<p>If not provided for relevant roles, user agents calculate <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-setsize"><code>aria-setsize</code></a> and <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-posinset"><code>aria-posinset</code></a> for each object in the container based on the number of objects in the <abbr title="Document Object Model">DOM</abbr>.</p></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Expose object attribute <code>setsize:<value></code> and <code>groupPosition</code>.</td><td rowspan="1" colspan="1">Expose as <code>setsize=<value></code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Expose object attribute <code>setsize:<value></code>.</td><td rowspan="1" colspan="1">Not mapped.</td></tr><tr><td rowspan="1" colspan="1"><code><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-sort"><code>aria-sort</code></a>="ascending",</code> <code>"descending"</code>, or <code>"other"</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Expose as object attribute <code>sort:<value></code></td><td rowspan="1" colspan="1">Expose as <code>sort=<value></code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Expose as object attribute <code>sort:<value></code></td><td rowspan="1" colspan="1"><code>AXSortDirection: AXAscendingSortDirection | AXDescendingSortDirection | AXUnknownSortDirection</code></td></tr><tr><td rowspan="1" colspan="1"><code><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-sort"><code>aria-sort</code></a>="none"</code> (default)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">If specified, expose as object attribute <code>sort:<value></code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">If specified, expose as object attribute <code>sort:<value></code></td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuemax"><code>aria-valuemax</code></a></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Expose via <code>AccessibleValue</code> interface.
<p>See <a href="#mapping_additional_widget-value">Widget values</a> for additional information</p></td><td rowspan="1" colspan="1">Expose the <code>Maximum</code> property in <code>RangeValue</code> Control Pattern
<p>See <a href="#mapping_additional_widget-value">Widget values</a> for additional information</p></td><td rowspan="1" colspan="1">Expose via <code>AccessibleValue</code> interface.
<p>See <a href="#mapping_additional_widget-value">Widget values</a> for additional information</p></td><td rowspan="1" colspan="1"><code>number AXMaxValue</code>
<p>See <a href="#mapping_additional_widget-value">Widget values</a> for additional information</p></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuemin"><code>aria-valuemin</code></a></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">Expose via <code>AccessibleValue</code> interface
<p>See <a href="#mapping_additional_widget-value">Widget values</a> for additional information</p></td><td rowspan="1" colspan="1">Expose the <code>Minimum</code> property in <code>RangeValue</code> Control Pattern
<p>See <a href="#mapping_additional_widget-value">Widget values</a> for additional information</p></td><td rowspan="1" colspan="1">Expose via <code>AccessibleValue</code> interface
<p>See <a href="#mapping_additional_widget-value">Widget values</a> for additional information</p></td><td rowspan="1" colspan="1"><code>number AXMinValue</code>
<p>See <a href="#mapping_additional_widget-value">Widget values</a> for additional information</p></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuenow"><code>aria-valuenow</code></a></td><td rowspan="1" colspan="1">If <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuetext"><code>aria-valuetext</code></a> is not defined, expose via <code>IAccessible::get_accValue</code></td><td rowspan="1" colspan="1">If <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuetext"><code>aria-valuetext</code></a> is not defined, expose via <code>IAccessible::get_accValue</code>
<p>Expose via <code>AccessibleValue</code> interface.
</p> <p>See <a href="#mapping_additional_widget-value">Widget values</a> for additional information</p></td><td rowspan="1" colspan="1">Expose <code>Value</code> property in <code>RangeValue</code> Control Pattern
<p>See <a href="#mapping_additional_widget-value">Widget values</a> for additional information</p></td><td rowspan="1" colspan="1">Expose via <code>AccessibleValue</code> interface.
<p>See <a href="#mapping_additional_widget-value">Widget values</a> for additional information</p></td><td rowspan="1" colspan="1"><code>number AXValue</code>
<p>See <a href="#mapping_additional_widget-value">Widget values</a> for additional information</p></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuetext"><code>aria-valuetext</code></a></td><td rowspan="1" colspan="1">Expose via <code>IAccessible::get_accValue</code></td><td rowspan="1" colspan="1">Expose via <code>IAccessible::get_accValue</code>
<p>Expose as object attribute <code>valuetext:<value></code></p> <p>See <a href="#mapping_additional_widget-value">Widget values</a> for additional information</p></td><td rowspan="1" colspan="1">Expose <code>Value</code> property in <code>Value</code> Control Pattern which can co-exist with <code>RangeValue</code> Control Pattern.
<p>See <a href="#mapping_additional_widget-value">Widget values</a> for additional information</p></td><td rowspan="1" colspan="1">Expose as object attribute <code>valuetext:<value></code> <p>See <a href="#mapping_additional_widget-value">Widget values</a> for additional information</p></td><td rowspan="1" colspan="1"><code>string AXValueDescription</code>
<p>See <a href="#mapping_additional_widget-value">Widget values</a> for additional information</p></td></tr></tbody></table>
</div>
</div>
<div class="section" id="mapping_additional">
<h3><span class="tocnum">5.6. </span> Special Processing Requiring Additional Computation</h3><p class="permalink"><a href="#mapping_additional" title="Permalink for Special Processing Requiring Additional Computation">#</a></p>
<div class="section" id="mapping_additional_nd">
<h4><span class="tocnum">5.6.1. </span> Name and Description</h4><p class="permalink"><a href="#mapping_additional_nd" title="Permalink for Name and Description">#</a></p>
<div class="section" id="mapping_additional_nd_name">
<h5><span class="tocnum">5.6.1.1. </span> Name Computation</h5><p class="permalink"><a href="#mapping_additional_nd_name" title="Permalink for Name Computation">#</a></p>
<p><a href="#def_useragent" class="termref">User agents</a> <strong class="rfc2119">MUST</strong> compute an <a class="termref" href="#def_accessible_name">accessible name</a> using the rules outlined below in the section titled <a href="#mapping_additional_nd_te">Text Alternative Computation</a>.</p>
<p class="note"><abbr title="Hypertext Markup Language">HTML</abbr> Note: If the <a class="termref" href="#def_element">element</a> is an <code>img</code> element; and the computed text alternative is empty, then check for the presence of <a href="#def_role" class="termref">role</a> <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#presentation"><code>presentation</code></a> or any labeling attribute that specifies an empty label, specifically <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-label"><code>aria-label</code></a>, <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-labelledby"><code>aria-labelledby</code></a>, <code>alt</code> or <code>title</code>. The presence of any of these indicates the author's intention to indicate that the <code>img</code> is decorative or redundant. In this case, the user agent <strong class="rfc2119">MUST</strong> set the name to an empty string. If none of these <a class="termref" href="#def_attribute">attributes</a> are present, this indicates the author simply did not provide an accessible label for the image, and the implementation <strong class="rfc2119">MUST</strong> return an accessible name of NULL instead of an empty string if the <abbr title="Application Programming Interface">API</abbr> supports it. This hints to the assistive technology to do its own heuristic processing to repair the missing accessible name.</p>
</div>
<div class="section" id="mapping_additional_nd_description">
<h5><span class="tocnum">5.6.1.2. </span> Description Computation</h5><p class="permalink"><a href="#mapping_additional_nd_description" title="Permalink for Description Computation">#</a></p>
<p>If <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-describedby"><code>aria-describedby</code></a> is present,
<a href="#def_useragent" class="termref">user agents</a> <strong class="rfc2119">MAY</strong> compute the accessible description by
concatenating the text alternatives for nodes referenced by an
<code>aria-describedby</code> attribute on the current node. The
text alternatives for the referenced nodes are computed using a
number of methods, outlined below in the section titled <a href="#mapping_additional_nd_te">Text Alternative
Computation</a>.</p>
</div>
<div class="section" id="mapping_additional_nd_te">
<h5><span class="tocnum">5.6.1.3. </span> Text Alternative Computation</h5><p class="permalink"><a href="#mapping_additional_nd_te" title="Permalink for Text Alternative Computation">#</a></p>
<p>The text alternative is reused in both the name and description computation, as described above. There are different rules provided for several different types of nodes and combinations of markup. Text alternatives are built up, when appropriate, from all the relevant content contained within an <a href="#def_element" class="termref">element</a>. This is accomplished via rule 2C (which is recursive), using the full set of rules to retrieve text from its own children.</p>
<p>The text alternative for a given node is computed as follows:</p>
<ol><li>Skip <a href="#def_hidden" class="termref">hidden</a> elements unless the author specifies to use them via an <code>aria-labelledby</code> or <code>aria-describedby</code> being used in the current computation. By default, users of <a href="#def_at" class="termref">assistive technologies</a> won't receive the hidden information, but an author will be able to explicitly override that and include the hidden text alternative as part of the label string sent to the <a href="#def_accessibility_api" class="termref">accessibility <abbr title="Application Programming Interface">API</abbr></a>.</li><li>For any non-skipped elements:
<ol><li>Authors <strong class="rfc2119">MAY</strong> specify an element's text alternative in content <a href="#def_attribute" class="termref">attributes</a>, used in this order of preference:
<ul><li>The <code>aria-labelledby</code> attribute takes precedence as the element's text alternative unless this computation is already occurring as the result of a recursive <code>aria-labelledby</code> declaration (in other words, <code>aria-labelledby</code> is not recursive when referenced from another element, so it will not cause loops). However, the element's <code>aria-labelledby</code> attribute can reference the element's own IDREF in order to concatenate a string provided by the element's <code>aria-label</code> attribute or another feature lower in this preference list. The text alternatives for all the elements referenced will be computed using this same set of rules. <a href="#def_useragent" class="termref">User agents</a> will then trim whitespace and join the substrings using a single space character. Substrings will be joined in the order specified by the author (IDREF order in the <code>aria-labelledby</code> attribute).
<p>In the following example, the <code><span></code> elements would have text alternatives of "Delete Documentation.pdf" and "Delete HolidayLetter.pdf", respectively.</p>
<p><code><h1>Files</h1>
<ul><br clear="none"/>
<li><br clear="none"/>
<a id="file_row1" href="./files/Documentation.pdf">Documentation.pdf</a><br clear="none"/>
<span role="button" tabindex="0" id="del_row1" aria-label="Delete" aria-labelledby="del_row1 file_row1"></span><br clear="none"/>
</li><br clear="none"/>
<li><br clear="none"/>
<a id="file_row2" href="./files/HolidayLetter.pdf">HolidayLetter.pdf</a><br clear="none"/>
<span role="button" tabindex="0" id="del_row2" aria-label="Delete" aria-labelledby="del_row2 file_row2"></span><br clear="none"/>
</li><br clear="none"/>
</ul></code></p></li><li>If <code>aria-labelledby</code> is empty or undefined, the <code>aria-label</code> attribute, which defines an explicit text string, is used. However, if this computation is already occurring as the result of a recursive text alternative computation <strong>and</strong> the current element is an embedded control as defined in rule 2B, ignore the <code>aria-label</code> attribute and skip directly to rule 2B.</li><li>If <code>aria-labelledby</code> and <code>aria-label</code> are both empty or undefined, and if the element is not marked as presentational (<code>role="<a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#presentation"><code>presentation</code></a>"</code>, check for the presence of an equivalent host language attribute or element for associating a label, and use those mechanisms to determine a text alternative. For example, in <abbr title="Hypertext Markup Language">HTML</abbr>, the <code>img</code> element's <code>alt</code> attribute defines a label string and the <code>label</code> element references the form element it labels. See <cite><a href="http://www.w3.org/TR/REC-html40/struct/objects.html#h-13.8">How to Specify Alternate Text</a></cite> ([<cite><a href="#ref_HTML"><abbr title="Hypertext Markup Language">HTML</abbr></a></cite>], section 13.8) and
<abbr title="Hypertext Markup Language 5">HTML5</abbr> <cite><a href="http://www.w3.org/TR/2010/WD-html5-20100624/embedded-content-1.html#alt">Requirements for providing text to act as an alternative for images</a></cite> ([<cite><a href="#ref_HTML5"><abbr title="Hypertext Markup Language 5">HTML5</abbr></a></cite>], section 4.8.1.1).
In the case of <abbr title="Hypertext Markup Language">HTML</abbr> <code>frame</code> and <code>iframe</code> elements, the <code>title</code> element in the <code>head</code> element of the document inside a <code>frame</code> or <code>iframe</code> is used in this step of the calculation of the name of the <code>frame</code> or <code>iframe</code>.</li></ul>
<p class="ednote">Editorial Note: We've asked the <abbr title="Hypertext Markup Language 5">HTML5</abbr> WG to remove or reduce this section, so we may remove the reference to it.</p>
</li><li>Authors sometimes embed a control within the label of another <a href="#def_widget" class="termref">widget</a>, where the user can adjust the embedded control's <a href="#def_value" class="termref">value</a>. For example, consider a check box label that contains a text input field: "Flash the screen [input] times". If the user has entered "5" for the embedded text input, the complete label is "Flash the screen 5 times". For such cases, include the value of the embedded control as part of the text alternative in the following manner:
<ul><li>If the embedded control is a text field, use its value.</li><li>If the embedded control is a menu, use the text alternative of the chosen menu item.</li><li>If the embedded control is a select or combobox, use the chosen option.</li><li>If the embedded control is a range (e.g. a <code>spinbutton</code> or <code>slider</code>), use the value of the <code>aria-valuetext</code> attribute if available, or otherwise the value of the <code>aria-valuenow</code> attribute.</li></ul>
<p class="ednote">Editorial Note: This bullet
of the text alternative computation is currently
normative. Its status is considered a feature
at risk and may be changed from a normative
requirement to an informative recommendation
if interoperable implementations are not found.</p></li><li>Otherwise, if the attributes checked in rules A and B didn't provide results, text is collected from descendant content if the current element's <a href="#def_role" class="termref">role</a> allows "Name From: contents." The text alternatives for child nodes will be concatenated, using this same set of rules. This same rule may apply to a child, which means the computation becomes recursive and can result in text being collected in all the nodes in this subtree, no matter how deep they are. However, any given descendant subtree may instead collect their part of the text alternative from the preferred markup described in A and B above. These author-specified attributes are assumed to provide the correct text alternative for the entire subtree. All in all, the node rules are applied consistently as text alternatives are collected from descendants, and each containing element in those descendants may or may not allow their contents to be used. Each node in the subtree is consulted only once. If text has been collected from a child node, and is referenced by another IDREF in some descendant node, then that second, or subsequent, reference is not followed. This is done to avoid infinite loops.</li><li>The last resort is to use text from a tooltip attribute (such as the <code>title</code> attribute in <abbr title="Hypertext Markup Language">HTML</abbr>). This is used only if nothing else, including subtree content, has provided results.</li></ol>
</li><li>Text nodes are often visited because they are children of an element that uses rule 2C to collect text from its children. However, because it is possible to specify textual content using <abbr title="Cascading Style Sheets">CSS rules, it is necessary for user agents to combine such content, as appropriate, with the text referenced by the text nodes to produce a complete text alternative.</abbr> An example is the use of <abbr title="Cascading Style Sheets">CSS</abbr> <code>:before</code> and <code>:after</code> pseudo-elements, where the user agent combines the textual content specified in the style sheet with that given in the DOM.
<ul><li>When an image replaces text, then the UA should use the original text, since that text is presumably the equivalent.</li><li>When text replaces an image, then the UA should provide that text.</li><li>When new text replaces old, then the UA should include the new text, since that is what is rendered on screen.</li></ul>
</li></ol>
<p>The purpose of the flat text alternative string is to create a <a href="#def_perceivable" class="termref">perceivable</a> label in alternative presentations. At each step of the algorithm, an implementation will trim the existing text alternative string and the string to be added, then join those two strings with a single space. For example, a space character may be inserted between the text of two elements used one after the other in a description.</p>
</div>
</div>
<div class="section" id="mapping_additional_widget-value">
<h4><span class="tocnum">5.6.2. </span> Widget Values</h4><p class="permalink"><a href="#mapping_additional_widget-value" title="Permalink for Widget Values">#</a></p>
<p><a href="#def_widget" class="termref">Widgets</a> that have a particular <a href="#def_value" class="termref">value</a> within a range of values. For example <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#progressbar"><code>progressbar</code></a>, <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#spinbutton"><code>spinbutton</code></a>, and <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#slider"><code>slider</code></a> use <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuemin"><code>aria-valuemin</code></a> and <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuemax"><code>aria-valuemax</code></a> to specify the range of valid values, <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuenow"><code>aria-valuenow</code></a> to specify the current value, and optionally <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuetext"><code>aria-valuetext</code></a> to specify a text string equivalent for the current value.</p>
<p>If the value is not set on a control that requires value, then <a href="#def_useragent" class="termref">user agents</a> <strong class="rfc2119">SHOULD</strong> return an error when the current value is requested.</p>
<p>When assistive technology requests the current value, user agents are not required to ensure that <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuenow"><code>aria-valuenow</code></a> is greater than <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuemin"><code>aria-valuemin</code></a> and less than <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuemax"><code>aria-valuemax</code></a>.</p>
<p>If an <a class="termref" href="#def_element">element</a> has the <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuetext"><code>aria-valuetext</code></a> <a href="#def_property" class="termref">property</a> set, but not <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuenow"><code>aria-valuenow</code></a>, user agents <strong class="rfc2119">MUST</strong> expose the string value of <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuetext"><code>aria-valuetext</code></a> as specified in <a href="#mapping_state-property">State and Property Mapping</a>, but return an error for any value getter that only returns a numeric type.</p>
</div>
<div class="section" id="mapping_additional_relations">
<h4><span class="tocnum">5.6.3. </span> Relations</h4><p class="permalink"><a href="#mapping_additional_relations" title="Permalink for Relations">#</a></p>
<p>Often in a <abbr title="Graphical User Interface">GUI</abbr>, there are <a href="#def_relationship" class="termref">relationships</a> between the <a href="#def_widget" class="termref">widgets</a> that can be exposed programmatically to <a class="termref" href="#def_at">assistive technology</a>. <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> provides several relationship <a href="#def_property" class="termref">properties</a> which are globally applicable to any <a class="termref" href="#def_element">element</a>: <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-controls"><code>aria-controls</code></a>, <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-describedby"><code>aria-describedby</code></a>, <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-flowto"><code>aria-flowto</code></a>, <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-labelledby"><code>aria-labelledby</code></a>, <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-owns"><code>aria-owns</code></a>, <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-posinset"><code>aria-posinset</code></a>, and <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-setsize"><code>aria-setsize</code></a>. Therefore, it is not important to check the <a href="#def_role" class="termref">role</a> before computing them. <a href="#def_useragent" class="termref">User agents</a> can simply map these relations to <a class="termref" href="#def_accessibility_api">accessibility <abbr title="Application Programming Interfaces">APIs</abbr></a> as defined in the section titled <a href="#mapping_state-property">State and Property Mapping</a>. </p>
<div class="section" id="mapping_additional_relations_error_processing">
<h5><span class="tocnum">5.6.3.1. </span> ID Reference Error Processing</h5><p class="permalink"><a href="#mapping_additional_relations_error_processing" title="Permalink for ID Reference Error Processing">#</a></p>
<p><a href="#def_useragent" class="termref">User agents</a> <strong class="rfc2119">SHOULD</strong> ignore ID references that do not match the ID of another <a class="termref" href="#def_element">element</a> in the same document.</p>
<p>It is the web author's responsibility to ensure that IDs are unique. If more than one element has the same ID, the user agent <strong class="rfc2119">SHOULD</strong> use the first element found with the given ID. The behavior will be the same as <code>getElementById</code>.</p>
<p>If the same element is specified multiple times in a single <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> relation, user agents <strong class="rfc2119">SHOULD</strong> return multiple pointers to the same <a href="#def_object" class="termref">object</a>.</p>
<p><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-activedescendant"><code>aria-activedescendant</code></a> is defined as referencing only a single ID reference. Any <code>aria-activedescendant</code> <a href="#def_value" class="termref">value</a> that does not match an existing IDREF exactly is an author error and will not match any element in the <abbr title="Document Object Model">DOM</abbr>.</p>
</div>
<div class="section" id="mapping_additional_relations_reverse_relations">
<h5><span class="tocnum">5.6.3.2. </span> Reverse Relations</h5><p class="permalink"><a href="#mapping_additional_relations_reverse_relations" title="Permalink for Reverse Relations">#</a></p>
<p>A reverse relation exists when an element's ID is referenced by a <a href="#def_property" class="termref">property</a> in another <a class="termref" href="#def_element">element</a>. For <abbr title="Application Programming Interfaces">APIs</abbr> that support reverse relations, <a href="#def_useragent" class="termref">user agents</a> <strong class="rfc2119">MUST</strong> use the mapping defined in the following table when an element's ID is referenced by a relation property of another element.</p>
<table summary="First column is WAI-ARIA state or property and value, if applicable, followed by mappings to the following accessibility APIs: MSAA, IAccessible2, UI Automation, ATK, and MAC Accessibility" border="1" width="93%"><caption> Reverse relation mapping table</caption><tbody><tr><th rowspan="1" colspan="1"><abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> Relation</th><th rowspan="1" colspan="1">IAccessible2</th><th rowspan="1" colspan="1"><abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology-Service Provider Interface">AT-SPI</abbr></th></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-controls"><code>aria-controls</code></a> references the element's ID</td><td rowspan="1" colspan="1"><code>IA2_RELATION_CONTROLLED_BY</code></td><td rowspan="1" colspan="1"><code>RELATION_CONTROLLED_BY</code></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-describedby"><code>aria-describedby</code></a> references the element's ID</td><td rowspan="1" colspan="1"><code>IA2_RELATION_DESCRIPTION_FOR</code></td><td rowspan="1" colspan="1"><code>RELATION_DESCRIPTION_FOR</code></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-flowto"><code>aria-flowto</code></a> references the element's ID</td><td rowspan="1" colspan="1"><code>IA2_RELATION_FLOW_FROM</code></td><td rowspan="1" colspan="1"><code>RELATION_FLOW-FROM</code></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-labelledby"><code>aria-labelledby</code></a> references the element's ID</td><td rowspan="1" colspan="1"><code>IA2_RELATION_LABEL_FOR</code></td><td rowspan="1" colspan="1"><code>RELATION_LABEL_FOR</code></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-owns"><code>aria-owns</code></a> references the element's ID</td><td rowspan="1" colspan="1"><code>IA2_RELATION_NODE_CHILD_OF</code></td><td rowspan="1" colspan="1"><code>RELATION_NODE_CHILD_OF</code></td></tr></tbody></table>
<p class="note"><abbr title="Hypertext Markup Language">HTML</abbr> note: If both <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-labelledby"><code>aria-labelledby</code></a> and <abbr title="Hypertext Markup Language">HTML</abbr> <code><label for=></code> are used, the user agent <strong class="rfc2119">MUST</strong> use the <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> relation and <strong class="rfc2119">MUST</strong> ignore the <abbr title="Hypertext Markup Language">HTML</abbr> label relation.</p>
<p>Note that <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-describedby"><code>aria-describedby</code></a> may reference structured or interactive information where users would want to be able to navigate to different sections of content. User agents <strong class="rfc2119">MAY</strong> provide a way for the user to navigate to structured information referenced by <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-describedby"><code>aria-describedby</code></a> and <a class="termref" href="#def_at">assistive technology</a> <strong class="rfc2119">SHOULD</strong> provide such a method.</p>
</div>
<div class="section" id="mapping_additional_relations_implied">
<h5><span class="tocnum">5.6.3.3. </span> Implied reverse relations</h5><p class="permalink"><a href="#mapping_additional_relations_implied" title="Permalink for Implied reverse relations">#</a></p>
<p>In addition to the explicit relations defined by <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> <a href="#def_property" class="termref">properties</a>, reverse relations are implied in two other situations: <a class="termref" href="#def_element">elements</a> with <code>role="treeitem"</code> where the ancestor does not have an <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-owns"><code>aria-owns</code></a> property and descendants of elements with <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-atomic"><code>aria-atomic</code></a> property.</p>
<p>In the case of <code>role="<a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#treeitem"><code>treeitem</code></a>"</code>, when <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-owns"><code>aria-owns</code></a> is not used, <a href="#def_useragent" class="termref">user agents</a> <strong class="rfc2119">SHOULD</strong> do the following where reverse relations are supported by the <abbr title="application programming interface">API</abbr>:</p>
<ul><li>If the current <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#treeitem"><code>treeitem</code></a> uses <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-level"><code>aria-level</code></a>, then walk backwards in the tree until a <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#treeitem"><code>treeitem</code></a> is found with a lower <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-level"><code>aria-level</code></a>, then set <code>RELATION_NODE_CHILD_OF</code> to that element. If the top of the tree is reached, then set <code>RELATION_NODE_CHILD_OF</code> to the tree element itself.</li><li>If the parent of the <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#treeitem"><code>treeitem</code></a> has a <a href="#def_role" class="termref">role</a> of <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#group"><code>group</code></a>, then walk backwards from the <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#group"><code>group</code></a> until an element with a role of <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#treeitem"><code>treeitem</code></a> is found, then set <code>RELATION_NODE_CHILD_OF</code> to that element.</li></ul>
<p>In the case of <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-atomic"><code>aria-atomic</code></a>, where reverse relations are supported by the <abbr title="application programming interface">API</abbr>:</p>
<ul><li>User agents <strong class="rfc2119">SHOULD</strong> check the chain of ancestor elements for <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-atomic"><code>aria-atomic</code></a>="true". If found, user agents <strong class="rfc2119">SHOULD</strong> set the <code>RELATION_MEMBER_OF</code> relation to point to the ancestor that sets <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-atomic"><code>aria-atomic</code></a>="true".</li></ul>
</div>
</div>
<div class="section" id="mapping_additional_position">
<h4><span class="tocnum">5.6.4. </span> Group Position</h4><p class="permalink"><a href="#mapping_additional_position" title="Permalink for Group Position">#</a></p>
<p><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-level"><code>aria-level</code></a>, <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-posinset"><code>aria-posinset</code></a>, and <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-setsize"><code>aria-setsize</code></a> are all 1-based. When the <a href="#def_property" class="termref">property</a> is not present or is "0", it indicates the property is not computed or not supported. If any of these properties are specified by the author as either "0" or a negative number, <a href="#def_useragent" class="termref">user agents</a> <strong class="rfc2119">SHOULD</strong> use "1" instead. </p>
<p>If <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-level"><code>aria-level</code></a> is not provided or inherited for an element of <a href="#def_role" class="termref">role</a> <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#treeitem"><code>treeitem</code></a>, user agents implementing IAccessible2 or <abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology-Service Provider Interface">AT-SPI</abbr> <strong class="rfc2119">MUST</strong> compute it by following the explicit or computed <code>RELATION_NODE_CHILD_OF</code> relations.</p>
<p>If <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-posinset"><code>aria-posinset</code></a> and <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-setsize"><code>aria-setsize</code></a> are not provided, user agents <strong class="rfc2119">MUST</strong> compute them as follows:</p>
<ul><li>for <code>role="<a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#treeitem"><code>treeitem</code></a>"</code>, walk the tree backward and forward until the explicit or computed level becomes less than the current item's level. Count items only if they are at the same level as the current item.</li><li>Otherwise, walk backward and forward within the <abbr title="Document Object Model">DOM</abbr> parent, counting items that have the same role.</li><li>Because these <a href="#def_value" class="termref">values</a> are 1-based, include the current item in the computation. For <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-posinset"><code>aria-posinset</code></a>, include the current item and other group items if they are before the current item in the DOM. For <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-setsize"><code>aria-setsize</code></a>, add to that the number of items in the same group after the current item in the <abbr title="Document Object Model">DOM</abbr>.</li></ul>
</div>
</div>
<div class="section" id="mapping_actions">
<h3><span class="tocnum">5.7. </span> Actions</h3><p class="permalink"><a href="#mapping_actions" title="Permalink for Actions">#</a></p>
<p>As part of mapping roles to accessible objects as defined in <a href="#mapping_role">Role Mapping</a>, users agents expose a default action on the object.</p>
<ul><li>MSAA: If an <abbr title="Assistive Technology">AT</abbr> calls <code>DoDefaultAction</code> on an accessible object, the user agent <strong class="rfc2119">SHOULD</strong> simulate a click on the <abbr title="Document Object Model">DOM</abbr> element which is mapped to that accessible object.</li><li>IAccessible2: If an <abbr title="Assistive Technology">AT</abbr> calls the <code>IAccessibleAction</code> on an accessible object, the user agent <strong class="rfc2119">SHOULD</strong> simulate a click on the <abbr title="Document Object Model">DOM</abbr> element which is mapped to that accessible object.</li><li>UIA Automation: If an <abbr title="Assistive Technology">AT</abbr> calls any <abbr title="User Interface Automation">UIA</abbr> pattern method on an accessible object, the user agent <strong class="rfc2119">SHOULD</strong> simulate a click on the <abbr title="Document Object Model">DOM</abbr> element which is mapped to that accessible object.</li><li><abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology-Service Provider Interface">AT-SPI</abbr>: If an <abbr title="Assistive Technology">AT</abbr> calls an action on an accessible object, the user agent <strong class="rfc2119">SHOULD</strong> simulate a click on the <abbr title="Document Object Model">DOM</abbr> element which is mapped to that accessible object.</li><li>Mac OS X: If an <abbr title="Assistive Technology">AT</abbr> triggers an <code>AXPress</code> action on an accessible object, the user agent <strong class="rfc2119">SHOULD</strong> simulate a click on the <abbr title="Document Object Model">DOM</abbr> element which is mapped to that accessible object.</li></ul>
<p class="note">Note: Authors will need to create handlers for those click events that update <abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> states and properties in the <abbr title="Document Object Model">DOM</abbr> accordingly, so that those updated states can be populated by the user agent in the Accessibility <abbr title="Application Programming Interface">API</abbr>.</p>
</div>
<div class="section" id="mapping_events">
<h3><span class="tocnum">5.8. </span> Events</h3><p class="permalink"><a href="#mapping_events" title="Permalink for Events">#</a></p>
<p><a href="#def_useragent" class="termref">User agents</a> fire <a href="#def_event" class="termref">events</a> for user actions, <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> <a href="#def_state" class="termref">state</a> changes, changes to document content or node visibility, changes in selection and operation of menus as defined in the following sections. </p>
<div class="section" id="mapping_events_state-change">
<h4><span class="tocnum">5.8.1. </span> State and Property Change Events</h4><p class="permalink"><a href="#mapping_events_state-change" title="Permalink for State and Property Change Events">#</a></p>
<p><a href="#def_useragent" class="termref">User agents</a> <strong class="rfc2119">MUST</strong> notify <a class="termref" href="#def_at">assistive technology</a> of <a href="#def_state" class="termref">state</a> changes as defined in the table below, <strong class="rfc2119">SHOULD</strong> notify assistive technology of <a href="#def_property" class="termref">property</a> changes if the <a class="termref" href="#def_accessibility_api">accessibility <abbr title="application programing interface">API</abbr></a> defines a change <a href="#def_event" class="termref">event</a> for the property, and <strong class="rfc2119">SHOULD NOT</strong> notify assistive technology of property changes if the accessibility <abbr title="application programing interface">API</abbr> does not define a change event for the property. <abbr title="Accessible Rich Internet Applications">For example, IAccessible2 defines an event to be used when <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-activedescendant"><code>aria-activedescendant</code></a> changes. </abbr><abbr title="Accessible Rich Internet Applications">WAI-ARIA</abbr> properties that are expected to change include <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-activedescendant"><code>aria-activedescendant</code></a>, <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuenow"><code>aria-valuenow</code></a>, and <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuetext"><code>aria-valuetext</code></a>.</p>
<p class="note">Note: In some <abbr title="Application Programming Interfaces">APIs</abbr>, AT will only be notified of events to which it has subscribed.</p>
<p> For simplicity and performance the user agent <strong class="rfc2119">MAY</strong> trim out change events for state or property changes that <a class="termref" href="#def_at">assistive technologies</a> typically ignore, such as events that are happening in a window that does not currently have focus. </p>
<table><caption>Table of events to be fired in each <abbr title="application programing interfaces">API</abbr> for changes in <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> states and properties</caption><tbody><tr><th width="10%" rowspan="1" colspan="1">State or Property</th><th width="10%" rowspan="1" colspan="1"><abbr title="Microsoft Active Accessibility">MSAA</abbr> + UIA Express event</th><th width="10%" rowspan="1" colspan="1">MSAA + IAccessible2 event </th><th width="10%" rowspan="1" colspan="1"><abbr title="User Interface Automation">UIA</abbr> event</th><th width="10%" rowspan="1" colspan="1"><abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology-Service Provider Interface">AT-SPI</abbr>event</th><th width="10%" rowspan="1" colspan="1">Mac OS X Notification</th></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-activedescendant"><code>aria-activedescendant</code></a></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>IA2_EVENT_ACTIVE_DESCENDANT_CHANGED</code>
<p>See <a href="#keyboard-focus_aria-activedescendant">Controlling focus with <code>aria-activedescendant</code></a></p></td><td rowspan="1" colspan="1">See <a href="#keyboard-focus_aria-activedescendant">Controlling focus with <code>aria-activedescendant</code></a></td><td rowspan="1" colspan="1">See <a href="#keyboard-focus_aria-activedescendant">Controlling focus with <code>aria-activedescendant</code></a></td><td rowspan="1" colspan="1"><p><code>AXSelectedChildrenChanged</code> </p>
<p>See <a href="#keyboard-focus_aria-activedescendant">Controlling focus with <code>aria-activedescendant</code></a></p></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-busy"><code>aria-busy</code></a> (state)</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_STATECHANGE</code></td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_STATECHANGE</code></td><td rowspan="1" colspan="1"><code>PropertyChangedEvent</code></td><td rowspan="1" colspan="1"><code>object:state-changed:busy</code></td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-checked"><code>aria-checked</code></a> (state)</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_STATECHANGE</code></td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_STATECHANGE</code></td><td rowspan="1" colspan="1"><code>ToggleStateProperty</code> as part of <code>toggle</code> pattern</td><td rowspan="1" colspan="1"><code>object:state-changed:checked</code></td><td rowspan="1" colspan="1"><code>AXValueChanged</code></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-disabled"><code>aria-disabled</code></a> (state)</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_STATECHANGE</code></td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_STATECHANGE</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>object:state-changed:enabled</code> and <code>object:state-changed:sensitive</code></td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-dropeffect"><code>aria-dropeffect</code></a> (state)</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>object:property-change</code></td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-expanded"><code>aria-expanded</code></a> (state)</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_STATECHANGE</code></td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_STATECHANGE</code></td><td rowspan="1" colspan="1"><code>expand</code>/<code>collapse</code> pattern events</td><td rowspan="1" colspan="1"><code>object:state-changed:expanded</code></td><td rowspan="1" colspan="1"><code>AXRowExpanded</code>,<br clear="none"/>
<code>AXRowCollapsed</code>,<br clear="none"/>
<code>AXRowCountChanged</code></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-grabbed"><code>aria-grabbed</code></a> (state)</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_SELECTION</code></td><td rowspan="1" colspan="1"><p><code>EVENT_OBJECT_SELECTION</code></p>
<p><code>IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED</code></p></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>object:property-change</code></td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-hidden"><code>aria-hidden</code></a> (state)</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_HIDE</code>, <code>EVENT_OBJECT_SHOW</code></td><td rowspan="1" colspan="1"><code> IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED</code></td><td rowspan="1" colspan="1"><code>StructureChangedEvent</code></td><td rowspan="1" colspan="1"><code>object:property-change</code></td><td rowspan="1" colspan="1"><code>AXUIElementDestroyed</code>,<br clear="none"/>
<code>AXUIElementCreated</code></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-invalid"><code>aria-invalid</code></a> (state)</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_STATECHANGE</code></td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_STATECHANGE</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>object:state-changed:invalid_entry</code></td><td rowspan="1" colspan="1"><code>AXInvalidStatusChanged</code></td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-pressed"><code>aria-pressed</code></a> (state)</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_STATECHANGE</code></td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_STATECHANGE</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>object:state-changed:pressed</code></td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-readonly"><code>aria-readonly</code></a></td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_STATECHANGE</code></td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_STATECHANGE</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>object:state-changed:readonly</code></td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-required"><code>aria-required</code></a></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_STATECHANGE</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>object:state-changed:required</code></td><td rowspan="1" colspan="1">Not mapped</td></tr><tr><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-selected"><code>aria-selected</code></a> (state)</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_SELECTIONADD</code><br clear="none"/>
<code>EVENT_OBJECT_SELECTIONREMOVE</code></td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_SELECTIONADD</code><br clear="none"/>
<code>EVENT_OBJECT_SELECTIONREMOVE</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>object:selection-changed</code> or if text, <code>object:text-selection-changed</code> </td><td rowspan="1" colspan="1"><code>AXSelectedChildrenChanged</code></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuenow"><code>aria-valuenow</code></a></td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_VALUECHANGE</code></td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_VALUECHANGE</code></td><td rowspan="1" colspan="1"><code>ValueProperty</code> property change as part of <code>value</code> pattern</td><td rowspan="1" colspan="1"><code>object:property-change:accessible-value</code></td><td rowspan="1" colspan="1"><code>AXValueChanged</code></td></tr><tr><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuetext"><code>aria-valuetext</code></a></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_VALUECHANGE</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>object:property-change:accessible-value</code></td><td rowspan="1" colspan="1"><code>AXValueChanged</code></td></tr></tbody></table>
</div>
<div class="section" id="mapping_events_visibility">
<h4><span class="tocnum">5.8.2. </span> Changes to document content or node visibility</h4><p class="permalink"><a href="#mapping_events_visibility" title="Permalink for Changes to document content or node visibility">#</a></p>
<p>Processing document changes is important regardless of <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr>. The events described in the table below are used by user agents to inform <abbr title="assistive technology">AT</abbr> of changes to the <abbr title="Document Object Model">DOM</abbr>. For the purposes of conformance with this standard, <a href="#def_useragent" class="termref">user agents</a> <strong class="rfc2119">MUST</strong> implement the behavior described in this section whenever <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> attributes are applied to dynamic content on a Web page. </p>
<table><caption>Table of document change scenarios and events to be fired in each <abbr title="application programing interfaces">API</abbr></caption><tbody><tr><th width="10%" rowspan="1" colspan="1">Scenario</th><th width="10%" rowspan="1" colspan="1"><abbr title="Microsoft Active Accessibility">MSAA</abbr> + UIA Express event</th><th width="10%" rowspan="1" colspan="1">MSAA + IAccessible2 event </th><th width="10%" rowspan="1" colspan="1"><abbr title="User Interface Automation">UIA</abbr> event</th><th width="10%" rowspan="1" colspan="1"><abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology-Service Provider Interface">AT-SPI</abbr>event</th><th width="10%" rowspan="1" colspan="1">Mac OS X Event</th></tr><tr><td rowspan="1" colspan="1">When text is removed</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>IA2_EVENT_TEXT_REMOVED</code></td><td rowspan="1" colspan="1"><code>TextPattern..::.TextChangedEvent</code></td><td rowspan="1" colspan="1"><code>text_changed::delete</code></td><td rowspan="1" colspan="1">If in a <a href="#def_liveregion" class="termref">live region</a>, <code>AXLiveRegionChanged</code></td></tr><tr><td rowspan="1" colspan="1">When text is inserted</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>IA2_EVENT_TEXT_INSERTED</code></td><td rowspan="1" colspan="1"><code>extPattern..::.TextChangedEvent</code></td><td rowspan="1" colspan="1"><code>text_changed::insert</code></td><td rowspan="1" colspan="1">If in a live region, <code>AXLiveRegionChanged</code></td></tr><tr><td rowspan="1" colspan="1">When text is changed</td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1"><code>IA2_EVENT_TEXT_REMOVE</code> followed immediately by <code>IA2_EVENT_TEXT_INSERTED</code></td><td rowspan="1" colspan="1"><code>TextPattern..::.TextChangedEvent</code>followed immediately by <code>extPattern..::.TextChangedEvent</code></td><td rowspan="1" colspan="1"><code>text_changed::delete</code> followed immediately by <code>text_changed::insert</code></td><td rowspan="1" colspan="1">If in a live region, <code>AXLiveRegionChanged</code></td></tr></tbody></table>
<p>Fire these events for node changes where the node in question is an element and has an <a href="#def_accessible_object" class="termref">accessible object</a>:</p>
<table><caption>Table of document change scenarios and events to be fired in each <abbr title="application programing interfaces">API</abbr></caption><tbody><tr><th width="10%" rowspan="1" colspan="1">Scenario</th><th width="10%" rowspan="1" colspan="1"><abbr title="Microsoft Active Accessibility">MSAA</abbr></th><th width="10%" rowspan="1" colspan="1">Microsoft <abbr title="User Interface Automation">UIA</abbr> event</th><th width="10%" rowspan="1" colspan="1"><abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology-Service Provider Interface">AT-SPI</abbr>event</th><th width="10%" rowspan="1" colspan="1">Mac OS X Event</th></tr><tr><td rowspan="1" colspan="1">When a subtree is <a href="#def_hidden" class="termref">hidden</a></td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_HIDE</code><br clear="none"/>
The <abbr title="Microsoft Active Accessibility">MSAA</abbr> event called <code>EVENT_OBJECT_DESTROY</code> is not used because this has a history of stability issues and assistive technology avoids it. In any case, from the user's point of view, there is no difference between something that is hidden or destroyed.
</td><td rowspan="1" colspan="1"><code>AutomationElement..::.StructureChangedEvent</code></td><td rowspan="1" colspan="1"><code>children_changed::remove</code></td><td rowspan="1" colspan="1"><p><code>AXUIElementDestroyed</code></p>
<p>If in a live region, <code>AXLiveRegionChanged</code></p></td></tr><tr><td rowspan="1" colspan="1">When a subtree is removed</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_REORDER</code><br clear="none"/>
The <abbr title="Microsoft Active Accessibility">MSAA</abbr> event called <code>EVENT_OBJECT_DESTROY</code> is not used because this has a history of stability issues and assistive technology avoids it. In any case, from the user's point of view, there is no difference between something that is hidden or destroyed.
</td><td rowspan="1" colspan="1"><code>AutomationElement..::.StructureChangedEvent</code></td><td rowspan="1" colspan="1"><code>children_changed::remove</code></td><td rowspan="1" colspan="1"><p><code>AXUIElementDestroyed</code></p>
<p>If in a live region, <code>AXLiveRegionChanged</code></p></td></tr><tr><td rowspan="1" colspan="1">When a subtree is shown</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_SHOW</code></td><td rowspan="1" colspan="1"> </td><td rowspan="1" colspan="1"><code>children_changed::add</code></td><td rowspan="1" colspan="1"><p><code>AXUIElementCreated</code></p>
<p>If in a live region, <code>AXLiveRegionChanged</code></p></td></tr><tr><td rowspan="1" colspan="1">When a subtree is inserted</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_REORDER</code></td><td rowspan="1" colspan="1"> </td><td rowspan="1" colspan="1"><code>children_changed::add</code></td><td rowspan="1" colspan="1"><p><code>AXUIElementCreated</code></p>
<p>If in a live region, <code>AXLiveRegionChanged</code></p></td></tr><tr><td rowspan="1" colspan="1">When a subtree is moved</td><td rowspan="1" colspan="1">Treat it as a removal from one place and insertion in another</td><td rowspan="1" colspan="1">Treat it as a removal from one place and insertion in another</td><td rowspan="1" colspan="1">Treat it as a removal from one place and insertion in another</td><td rowspan="1" colspan="1"><p><code>AXUIElementDestroyed</code>/ <code>AXUIElementCreated</code></p>
<p>If in a live region, <code>AXLiveRegionChanged</code></p></td></tr><tr><td rowspan="1" colspan="1">When a subtree is changed (e.g. replaceNode)</td><td rowspan="1" colspan="1">Treat it as a removal and insertion</td><td rowspan="1" colspan="1">Treat it as a removal and insertion</td><td rowspan="1" colspan="1">Treat it as a removal and insertion</td><td rowspan="1" colspan="1"><p><code>AXUIElementDestroyed</code>/ <code>AXUIElementCreated</code></p>
<p>If in a live region, <code>AXLiveRegionChanged</code></p></td></tr></tbody></table>
<p>In some cases, node changes may occur where the node is not an element or has no accessible object. For example, a numbered list bullet ("12.") has a node in the accessibility tree but not in the <abbr title="Document Object Model">DOM</abbr> tree. For text within a paragraph marked in <abbr title="Hypertext Markup Language">HTML</abbr> as <code><strong></code>, the <code><strong></code> element has a node in the <abbr title="Document Object Model">DOM</abbr> tree but may not have one in the accessibility tree. The text itself will of course be in the accessibility tree along with the identification of the range of text that is formatted as strong. If any of the changes described in the table above occur on such a node, user agents <strong class="rfc2119">SHOULD</strong> compute and fire relevant text change events as described above. </p>
<p>User agents <strong class="rfc2119">SHOULD</strong> ensure that an assistive technology, running in process can receive notification of a node being removed prior to removal. This allows an assistive technology, such as a screen reader, to refer back to the corresponding <abbr title="Document Object Model">DOM</abbr> node being deleted. This is important for <a href="#def_liveregion" class="termref">live regions</a> where removals are important. For example, a screen reader would want to notify a user that another user has left a chat room. The event in <abbr title="Microsoft Active Accessibility">MSAA</abbr> would be<code> EVENT_OBJECT_HIDE</code>. For <abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology - Service Provider Interface">AT-SPI</abbr> this would be <code>children_changed::remove</code>. And in Mac OS X, the event is <code>AXLiveRegionChanged</code>. This also requires the user agent to provide a unique ID in the <a class="termref" href="#def_accessibility_api">accessibility <abbr title="Application Programming Interface">API</abbr></a> notification identifying the unique node being removed.</p>
<p>When firing any of the above-mentioned change events, it is very useful to provide information about whether the change was caused by user input (as opposed to a timeout initiated from the page load, etc.). This allows the assistive technology to have different rules for presenting changes from the real world as opposed to from user action. Mouse hovers are not considered explicit user input because they can occur from accidental bumps of the mouse.</p>
<p>To expose whether a change occurred from user input:</p>
<ul><li>In <abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology - Service Provider Interface">AT-SPI</abbr> this can be provided by appending the string ":system" to the event name when the user did not cause the change.</li><li>In IAccessible2, which screen readers typically access in process on the same thread, the best practice is to expose the object attribute <code>event-from-user-input:true</code> on the accessible object for the event, if the user caused the change.</li></ul>
<p>Exposing additional useful information about the context of the change:</p>
<ul><li>In <abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology - Service Provider Interface">AT-SPI</abbr>, the <code>RELATION_MEMBER_OF</code> relation on the accessible event object <strong class="rfc2119">SHOULD</strong> point to any ancestor with <code><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-atomic"><code>aria-atomic</code></a>="true"</code> (if any).</li><li>In <abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology - Service Provider Interface">AT-SPI</abbr>, the <code>container-live</code>, <code>container-relevant</code>, <code>container-busy</code>, <code>container-atomic</code> object attributes <strong class="rfc2119">SHOULD</strong> be exposed on the accessible event object, providing the computed value for the related <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> properties. The computed value is the value of the closest ancestor. It is recommended to not expose the object attribute if the default value is used.</li></ul>
<p>Additional <abbr title="Microsoft Active Accessibility">MSAA</abbr> events may be necessary:</p>
<ul><li>If something changes in an ancestor with a mapped <abbr title="Microsoft Active Accessibility">MSAA</abbr> role of <code>ROLE_SYSTEM_ALERT</code>, then an <code>EVENT_SYSTEM_ALERT</code> event <strong class="rfc2119">SHOULD</strong> be fired for the alert. The alert role has an implied value of "assertive" for the <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-live"><code>aria-live</code></a> property.</li><li>Menu events may need to be fired. See <a href="#mapping_events_menus">Menus in <abbr title="Microsoft Active Accessibility">MSAA</abbr>/IAccessible2</a>.</li></ul>
</div>
<div class="section" id="mapping_events_selection">
<h4><span class="tocnum">5.8.3. </span> Selection</h4><p class="permalink"><a href="#mapping_events_selection" title="Permalink for Selection">#</a></p>
<p>There are two cases for selection:</p>
<ul><li>Single selection</li><li>Multiple selection</li></ul>
<p>In the single selection case, selection follows focus. User agents <strong class="rfc2119">MUST</strong> fire the following events:</p>
<table summary="Selection events to fire for selection changes" border="1"><tbody><tr><th rowspan="1" colspan="1">Scenario</th><th rowspan="1" colspan="1"><abbr title="Microsoft Active Accessibility">MSAA</abbr></th><th rowspan="1" colspan="1">Microsoft <abbr title="User Interface Automation">UIA</abbr></th><th rowspan="1" colspan="1"><abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology - Service Provider Interface">AT-SPI</abbr></th><th rowspan="1" colspan="1">Mac OS X</th></tr><tr><td rowspan="1" colspan="1">Focus change</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_SELECTION</code> then <code>EVENT_OBJECT_STATECHANGE</code> on newly focused item, but arrange events so state change does not occur on focused item, to avoid extra selection change announcements</td><td rowspan="1" colspan="1"><p><code>FocusChangedEvent</code> should be fired but individual selection event may not happen, to avoid redundancy.</p>
<p>If on a <code>gridcell</code>, <code>row</code>, <code>listitem</code>, or <code>tab</code>, fire <code>UIA_SelectionItem_ElementSelectedEventId</code></p></td><td rowspan="1" colspan="1"><code>object::selection_changed</code> but arrange events so state change does not occur on focused item, to avoid extra selection change announcement</td><td rowspan="1" colspan="1"><code>AXSelectedChildrenChanged</code></td></tr></tbody></table>
<p>The multiple selection case occurs when <code><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-multiselectable"><code>aria-multiselectable</code></a>="true"</code> on an <a class="termref" href="#def_element">element</a> with a <a href="#def_role" class="termref">role</a> that supports that <a href="#def_property" class="termref">property</a>. There are several important aspects:</p>
<ol><li>In Microsoft <abbr title="User Interface Automation">UIA</abbr>, the <code>Selection</code> and <code>SelectionItem</code> Control Patterns expose the selection availability, state, and methods.</li><li>The selection interface can be used by an <a class="termref" href="#def_at">assistive technology</a> to actually set the selection on a descendant. This <strong class="rfc2119">SHOULD</strong> fail for the specified descendant if <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-selected"><code>aria-selected</code></a> is <strong>undefined</strong>, which indicates the element is not <code>SELECTABLE</code>. It <strong class="rfc2119">SHOULD</strong> also fail if the specified descendant is <code>DISABLED</code> or <code>READONLY</code> for any reason. When clearing selection on an item, set <code>aria-selected="false"</code> but do not remove the <a class="termref" href="#def_attribute">attribute</a>, so that it is still <code>SELECTABLE</code>.</li><li>User agents <strong class="rfc2119">MUST</strong> fire the following events when <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-selected"><code>aria-selected</code></a> changes on a descendant, as follows:</li></ol>
<table summary="Selection events to fire for selection changes" border="1"><tbody><tr><th rowspan="1" colspan="1">Scenario</th><th rowspan="1" colspan="1"><abbr title="Microsoft Active Accessibility">MSAA</abbr></th><th rowspan="1" colspan="1">Microsoft <abbr title="User Interface Automation">UIA</abbr></th><th rowspan="1" colspan="1"><abbr title="Accessibility Toolkit">ATK</abbr>/<abbr title="Assistive Technology - Service Provider Interface">AT-SPI</abbr></th><th rowspan="1" colspan="1">Mac OS X</th></tr><tr><td rowspan="1" colspan="1">Toggle <a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-selected"><code>aria-selected</code></a></td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_SELECTIONADD</code>/<code>EVENT_OBJECT_SELECTIONREMOVE</code> on the current container + <code>EVENT_OBJECT_STATECHANGE</code> on the item</td><td rowspan="1" colspan="1"><code>SelectionItem Control Pattern</code>:<code>UIA_SelectionItem_ElementAddedToSelectionEventId</code> or <code>UIA_SelectionItem_ElementRemovedFromSelectionEventId</code> on the current container</td><td rowspan="1" colspan="1"><code>object::selection_changed</code> on the item</td><td rowspan="1" colspan="1"><code>AXSelectedChildrenChanged</code></td></tr><tr><td rowspan="1" colspan="1">Selection follows focus</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_SELECTION</code> then <code>EVENT_OBJECT_STATECHANGE</code> on newly focused item, but arrange events so state change does not occur on focused item, to avoid extra selection change announcements</td><td rowspan="1" colspan="1"><code>FocusChangedEvent</code> should be fired but individual selection event may not happen, to avoid redundancy.</td><td rowspan="1" colspan="1"><code>object::selection_changed</code> but arrange events so state change does not occur on focused item, to avoid extra selection change announcement</td><td rowspan="1" colspan="1"><code>AXSelectedChildrenChanged</code></td></tr><tr><td rowspan="1" colspan="1">Select or deselect many items at once</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_SELECTIONWITHIN</code> is all that is necessary. The state change events <strong class="rfc2119">MAY</strong> be trimmed out for performance.</td><td rowspan="1" colspan="1"><code>Selection</code> Control Pattern <code>Invalidated</code> event can be used when the container has bulk of changes or when an exact selection is not clear.</td><td rowspan="1" colspan="1"><code>object::selection_changed</code>. The state change events <strong class="rfc2119">MAY</strong> be trimmed out for performance</td><td rowspan="1" colspan="1"><code>AXSelectedChildrenChanged</code></td></tr></tbody></table>
</div>
<div class="section" id="mapping_events_menus">
<h4><span class="tocnum">5.8.4. </span> Special Events for Menus</h4><p class="permalink"><a href="#mapping_events_menus" title="Permalink for Special Events for Menus">#</a></p>
<p>In some <abbr title="Application Programming Interfaces">APIs</abbr>, special <a href="#def_event" class="termref">events</a> are required whenever a menu is opened or closed. Because menus can be made visible or <a href="#def_hidden" class="termref">hidden</a> using a variety of techniques, a <a href="#def_useragent" class="termref">user agent</a> <strong class="rfc2119">MUST</strong> ensure that they are nested and symmetrical.</p>
<table summary="Selection events to fire for selection changes" border="1"><tbody><tr><th rowspan="1" colspan="1">Scenario</th><th rowspan="1" colspan="1"><abbr title="Microsoft Active Accessibility">MSAA</abbr>/IAccessible2</th><th rowspan="1" colspan="1">Microsoft <abbr title="User Interface Automation">UIA</abbr></th><th rowspan="1" colspan="1">Mac OS X</th></tr><tr><td rowspan="1" colspan="1">Open menu in menubar
<p>Focus goes to menuitem while menu "mode" is not currently active</p>
<p>Menubar must be in the natural parent chain or in the one caused by <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-owns"><code>aria-owns</code></a> (use <code>RELATION_NODE_CHILD_OF</code>)</p>
</td><td rowspan="1" colspan="1"><code>EVENT_SYSTEM_MENUSTART</code>, then set menu "mode"</td><td rowspan="1" colspan="1"><code>MenuModeStartEvent</code></td><td rowspan="1" colspan="1"><code>AXMenuOpenedNotification</code></td></tr><tr><td rowspan="1" colspan="1">Focus a menu item while in "menu"mode</td><td rowspan="1" colspan="1"><code>EVENT_OBJECT_FOCUS</code></td><td rowspan="1" colspan="1"> </td><td rowspan="1" colspan="1"><code>AXMenuItemSelectedNotification</code></td></tr><tr><td rowspan="1" colspan="1">Menu popup made visible
<p>Should only be fired once until the menu is closed and opened again.</p>
</td><td rowspan="1" colspan="1">If not in menu "mode", <code>EVENT_SYSTEM_MENUSTART</code>, then set menu "mode"
<p><code>EVENT_SYSTEM_MENUPOPUPSTART</code>, then a <code>focus</code> event on a menuitem</p>
</td><td rowspan="1" colspan="1"><code>MenuOpenedEvent</code>, then a <code>focus</code> event on a menuitem</td><td rowspan="1" colspan="1"><code>AXMenuOpenedNotification</code></td></tr><tr><td rowspan="1" colspan="1">Menu popup hidden</td><td rowspan="1" colspan="1"><code>EVENT_SYSTEMMENUPOPUPEND</code> once only for accessible menu object and only if <code>EVENT_SYSTEM_MENUPOPUPSTART</code> was fired for it.</td><td rowspan="1" colspan="1"><code>MenuClosedEvent</code></td><td rowspan="1" colspan="1"><code>AXMenuClosedNotification</code></td></tr><tr><td rowspan="1" colspan="1">When in menu "mode" and all menus closed</td><td rowspan="1" colspan="1"><code>EVENT_SYSTEM_MENUEND</code>, clear menu "mode"</td><td rowspan="1" colspan="1"><code>MenuModeEndEvent</code></td><td rowspan="1" colspan="1"><code>AXMenuClosedNotification</code></td></tr><tr><td rowspan="1" colspan="1">Focus moved out of menu</td><td rowspan="1" colspan="1"><code>EVENT_SYSTEM_MENUPOPUPEND</code>, then <code>EVENT_SYSTEM_MENUEND</code> and clear menu "mode"</td><td rowspan="1" colspan="1"><code>MenuClosedEvent</code>, then <code>MenuModeEndEvent</code></td><td rowspan="1" colspan="1"><code>AXMenuClosedNotification</code></td></tr></tbody></table>
</div>
</div>
</div>
<div class="section" id="document-handling">
<h2><span class="tocnum">6. </span> Special Document Handling Procedures</h2><p class="permalink"><a href="#document-handling" title="Permalink for Special Document Handling Procedures">#</a></p>
<p>This section is <a class="termref" href="#def_normative">normative</a>.</p>
<div class="section" id="document-handling_css-selectors">
<h3><span class="tocnum">6.1. </span> CSS Selectors</h3><p class="permalink"><a href="#document-handling_css-selectors" title="Permalink for CSS Selectors">#</a></p>
<p class="ednote">Editorial Note: This section might be removed in a future version.</p>
<p>Support for <a class="termref" href="#def_attribute">attribute</a> selectors <strong class="rfc2119">MUST</strong> include <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> attributes. For example, <samp>.fooMenuItem[aria-haspop="true"]</samp> would select all <a class="termref" href="#def_element">elements</a> with class <code>fooMenuItem</code>, and <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> <a href="#def_property" class="termref">property</a> <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-haspopup"><code>aria-haspopup</code></a> with <a href="#def_value" class="termref">value</a> of <code>true</code>. The presentation <strong class="rfc2119">MUST</strong> be updated for dynamic changes to <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> attributes. This allows authors to match styling with <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> <a href="#def_semantics" class="termref">semantics</a>. </p>
</div>
<div class="section" id="document-handling_author-errors">
<h3><span class="tocnum">6.2. </span> Author Errors</h3><p class="permalink"><a href="#document-handling_author-errors" title="Permalink for Author Errors">#</a></p>
<p>In general, <a href="#def_useragent" class="termref">user agents</a> do not do much validation of <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> <a href="#def_property" class="termref">properties</a>. User agents <strong class="rfc2119">MAY</strong> do some minor validation on request, such as making sure <a href="#def_valid_ID" class="termref">valid IDs</a> are specified for <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> relations, and enforcing things like <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-posinset"><code>aria-posinset</code></a> being within 1 and <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-setsize"><code>aria-setsize</code></a>, inclusive. User agents are not responsible for logical validation, such as the following:</p>
<ol><li>Circular references created by relations, such as specifying that two <a class="termref" href="#def_element">elements</a> own each other. </li><li>Correct usage with regard to <abbr title="Document Object Model">DOM</abbr> tree structure, such as an <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-activedescendant"><code>aria-activedescendant</code></a> being a <abbr title="Document Object Model">DOM</abbr>-descendant of the element with the relation.</li><li>Elements with <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> <a href="#def_role" class="termref">roles</a> correctly implement the behavior of the specified role. For example, user agents do not verify that an element with a role of <a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#checkbox"><code>checkbox</code></a> actually behaves like a checkbox.</li><li>Elements that do not correctly observe required child / parent role relationships or that appear elsewhere than in their required parent.</li><li>Determining whether <a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-activedescendant"><code>aria-activedescendant</code></a> actually points to a descendant or another <a href="#def_owned_element" class="termref">owned element</a>.</li></ol>
<p>If the author specifies a non-numeric <a href="#def_value" class="termref">value</a> for a decimal or integer value type, the user agent <strong class="rfc2119">SHOULD</strong> do the following:</p>
<ul><li>When asked for the string version of the property, return the string if specified by the author.</li><li>When asked for the decimal version, return a default value of 0.0 for decimal value types and 0 for integer value types. </li></ul>
<p>If a <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> property contains an unknown or disallowed value, the user agent <strong class="rfc2119">SHOULD</strong> expose to platform <a class="termref" href="#def_accessibility_api">accessibility <abbr title="Application Programming Interfaces">APIs</abbr></a> as follows:</p>
<ul><li>When exposing as an object attribute, expose the unknown value — do not vet it against possible values. </li><li> When exposing as a platform <abbr title="application programing interface">API</abbr> Boolean <a href="#def_state" class="termref">state</a>, treat "", "undefined" or no <a class="termref" href="#def_attribute">attribute</a> present as false. Treat any other value as true.</li><li>Otherwise, ignore the value and treat the property as not present</li></ul>
<p class="note">Note: In <abbr title="User Interface Automation">UIA</abbr>, the user agent might leave the corresponding property set to "unsupported."</p>
<p>User agent <strong class="rfc2119">MUST NOT</strong> expose <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> attributes that reference unresolved ID's. For example:</p>
<ul><li>When the state or property has only one ID reference that cannot be resolved, treat as if the state or property is not present.</li><li>When the state or property has a list of ID references, ignore any that can't be resolved. If none in the list can be resolved, treat as if the state or property is not present.</li></ul>
<p>If a required <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> attribute for a given role is missing, user agents <strong class="rfc2119">SHOULD</strong> process as if the following values were provided:</p>
<table summary="Default values of required aria properties if not specified" border="1"><tbody><tr><th rowspan="1" colspan="1"><abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> role</th><th rowspan="1" colspan="1">Required Attribute</th><th rowspan="1" colspan="1">Default value</th></tr></tbody><tbody><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#checkbox"><code>checkbox</code></a></td><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-checked"><code>aria-checked</code></a></td><td rowspan="1" colspan="1">undefined</td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#combobox"><code>combobox</code></a></td><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-expanded"><code>aria-expanded</code></a></td><td rowspan="1" colspan="1">undefined</td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#menuitemcheckbox"><code>menuitemcheckbox</code></a></td><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-checked"><code>aria-checked</code></a></td><td rowspan="1" colspan="1">undefined</td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#menuitemradio"><code>menuitemradio</code></a></td><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-checked"><code>aria-checked</code></a></td><td rowspan="1" colspan="1">undefined</td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#radio"><code>radio</code></a></td><td rowspan="1" colspan="1"><a class="state-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-checked"><code>aria-checked</code></a></td><td rowspan="1" colspan="1">undefined</td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#scrollbar"><code>scrollbar</code></a></td><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-controls"><code>aria-controls</code></a></td><td rowspan="1" colspan="1">no mapping</td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#scrollbar"><code>scrollbar</code></a></td><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-orientation"><code>aria-orientation</code></a></td><td rowspan="1" colspan="1">vertical</td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#scrollbar"><code>scrollbar</code></a></td><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuemax"><code>aria-valuemax</code></a></td><td rowspan="1" colspan="1">0</td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#scrollbar"><code>scrollbar</code></a></td><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuemin"><code>aria-valuemin</code></a></td><td rowspan="1" colspan="1">0</td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#scrollbar"><code>scrollbar</code></a></td><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuenow"><code>aria-valuenow</code></a></td><td rowspan="1" colspan="1">0</td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#slider"><code>slider</code></a></td><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuemax"><code>aria-valuemax</code></a></td><td rowspan="1" colspan="1">0</td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#slider"><code>slider</code></a></td><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuemin"><code>aria-valuemin</code></a></td><td rowspan="1" colspan="1">0</td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#slider"><code>slider</code></a></td><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuenow"><code>aria-valuenow</code></a></td><td rowspan="1" colspan="1">0</td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#spinbutton"><code>spinbutton</code></a></td><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuemax"><code>aria-valuemax</code></a></td><td rowspan="1" colspan="1">0</td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#spinbutton"><code>spinbutton</code></a></td><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuemin"><code>aria-valuemin</code></a></td><td rowspan="1" colspan="1">0</td></tr><tr><td rowspan="1" colspan="1"><a class="role-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/roles#spinbutton"><code>spinbutton</code></a></td><td rowspan="1" colspan="1"><a class="property-reference" href="http://www.w3.org/TR/2011/CR-wai-aria-20110118/states_and_properties#aria-valuenow"><code>aria-valuenow</code></a></td><td rowspan="1" colspan="1">0</td></tr></tbody></table>
</div>
</div>
<div class="section" id="appendices">
<h2><span class="tocnum">7. </span> Appendices</h2><p class="permalink"><a href="#appendices" title="Permalink for Appendices">#</a></p>
<div class="section" id="references">
<h3><span class="tocnum">7.1. </span> References</h3>
<p>This section is <em>normative</em>.</p>
<div class="section" id="references_normative">
<h4><span class="tocnum">7.1.1. </span> Normative
References</h4>
<p>Resources referenced normatively are considered part of this specification. Implementations of this specification <strong class="rfc2119">MUST</strong> implement the requirements of these resources.</p>
<dl><dt><a id="ref_ARIA" name="ref_ARIA"></a>[ARIA]</dt><dd><cite><a href="http://www.w3.org/TR/2010/WD-wai-aria-20100916/">Accessible
Rich Internet Applications (<acronym title="Accessible Rich Internet Applications">WAI-ARIA</acronym>) 1.0</a></cite>. J. Craig,
M. Cooper, L. Pappas, R. Schwerdtfeger, L. Seeman, Editors,
W3C Working Draft (work in progress), 16 September 2010. This version
of <acronym title="Accessible Rich Internet Applications">WAI-ARIA</acronym> is
available at http://www.w3.org/TR/2010/WD-wai-aria-20100916/. <a href="http://www.w3.org/TR/wai-aria/">Latest
version of <acronym title="Accessible Rich Internet Applications">WAI-ARIA</acronym></a> available
at http://www.w3.org/TR/wai-aria/.</dd><dt><a name="ref_ARIA-IMPLEMENTATION" id="ref_ARIA-IMPLEMENTATION"></a>[ARIA-IMPLEMENTATION]</dt><dd><cite><a href="http://www.w3.org/TR/2010/WD-wai-aria-implementation-20100916/"><acronym title="Accessible Rich Internet Applications">WAI-ARIA</acronym>
1.0 User Agent Implementation Guide</a></cite>. A. Snow-Weaver, M. Cooper,
A. Leventhal, Editors, W3C Working Draft (work in progress),
16 September 2010. This version of <acronym title="Accessible Rich Internet Applications">WAI-ARIA</acronym> User Agent Implementation Guide
is available at http://www.w3.org/TR/2010/WD-wai-aria-implementation-20100916/. <a href="http://www.w3.org/TR/wai-aria-implementation/">Latest
version of <acronym title="Accessible Rich Internet Applications">WAI-ARIA</acronym> User Agent Implementation</a> available at http://www.w3.org/TR/wai-aria-implementation/.</dd></dl>
</div>
<div class="section" id="references_informative">
<h4><span class="tocnum">7.1.2. </span> Informative References</h4>
<p>Resources referenced informatively provide useful information relevant to this document, but do not comprise a part of its requirements.</p>
<dl><dt><a id="ref_ARIA-PRACTICES" name="ref_ARIA-PRACTICES"></a>[ARIA-PRACTICES]</dt><dd><cite><a href="http://www.w3.org/TR/2010/WD-wai-aria-practices-20100916/"><acronym title="Accessible Rich Internet Applications">WAI-ARIA</acronym>
Authoring Practices</a></cite>. J. Scheuhammer, M. Cooper, L. Pappas,
R. Schwerdtfeger, Editors,
W3C Working Draft (work in progress), 16 September 2010. This version
of <acronym title="Accessible Rich Internet Applications">WAI-ARIA</acronym> 1.0 Authoring Practices is available at http://www.w3.org/TR/2010/WD-wai-aria-practices-20100916/. <a href="http://www.w3.org/TR/wai-aria-practices/">Latest
version of <acronym title="Accessible Rich Internet Applications">WAI-ARIA</acronym> Authoring Practices</a> available at http://www.w3.org/TR/wai-aria-practices/. </dd><dt><a id="ref_ARIA-PRIMER" name="ref_ARIA-PRIMER"></a>[ARIA-PRIMER]</dt><dd><cite><a href="http://www.w3.org/TR/2010/WD-wai-aria-primer-20100916/"><acronym title="Accessible Rich Internet Applications">WAI-ARIA</acronym> 1.0
Primer</a></cite>. L. Pappas, R. Schwerdtfeger, M. Cooper, Editors,
W3C Working Draft (work in progress), 16 September 2010. This version
of <acronym title="Accessible Rich Internet Applications">WAI-ARIA</acronym> Primer is available at http://www.w3.org/TR/2010/WD-wai-aria-primer-20100916/. <a href="http://www.w3.org/TR/wai-aria-primer/">Latest
version of <acronym title="Accessible Rich Internet Applications">WAI-ARIA</acronym> Primer</a> available at http://www.w3.org/TR/wai-aria-primer/. </dd><dt><a id="ref_ARIA-ROADMAP" name="ref_ARIA-ROADMAP"></a>[ARIA-ROADMAP]</dt><dd><cite><a href="http://www.w3.org/TR/2008/WD-wai-aria-roadmap-20080204/">Roadmap for Accessible Rich Internet Applications (<acronym title="Accessible Rich Internet Applications">WAI-ARIA</acronym> Roadmap)</a></cite>, R. Schwerdtfeger, Editor, W3C Working Draft (work in progress), 4 February 2008. This version of <acronym title="Accessible Rich Internet Applications">WAI-ARIA</acronym> Roadmap is available at http://www.w3.org/TR/2008/WD-wai-aria-roadmap-20080204/. <a href="http://www.w3.org/TR/wai-aria-roadmap/">Latest version of <acronym title="Accessible Rich Internet Applications">WAI-ARIA</acronym> Roadmap</a> available at http://www.w3.org/TR/wai-aria-roadmap/.</dd><dt><a name="ref_ATK" id="ref_ATK"></a>[ATK]</dt><dd><cite><a href="http://developer.gnome.org/atk/unstable/">Gnome Accessibility Toolkit</a></cite>. Available at http://developer.gnome.org/atk/unstable/.</dd><dt><a name="ref_AT-SPI" id="ref_AT-SPI"></a>[AT-SPI]</dt><dd><cite><a href="http://developer.gnome.org/libatspi/stable/">Assistive Technology-Service Provider Interface</a></cite>. Available at http://developer.gnome.org/libatspi/stable/.</dd><dt><a id="ref_AXAPI" name="ref_AXAPI"></a>[AXAPI]</dt><dd><cite><a href="http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Accessibility/cocoaAXIntro/cocoaAXintro.html">The Mac OS X Accessibility Protocol</a></cite>. Available at: http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Accessibility/cocoaAXIntro/cocoaAXintro.html.</dd><dt><a id="ref_HTML" name="ref_HTML"></a>[HTML]</dt><dd><cite><a href="http://www.w3.org/TR/1999/REC-html401-19991224/">HTML 4.01 Specification</a></cite>, I. Jacobs, A. Le Hors, D. Raggett, Editors, W3C Recommendation, 24 December 1999, http://www.w3.org/TR/1999/REC-html401-19991224/. <a href="http://www.w3.org/TR/html401/" title="Latest version of HTML 4.01 Specification">Latest version of HTML 4.01</a> available at http://www.w3.org/TR/html401/.</dd><dt><a name="ref_HTML5" id="ref_HTML5"></a>[HTML5]</dt><dd> <cite><a href="http://www.w3.org/TR/2010/WD-html5-20100624/">HTML 5</a></cite>,
I. Hickson, Editor, W3C Working Draft (work in progress),
24 June 2010, http://www.w3.org/TR/2010/WD-html5-20100624/. <a href="http://www.w3.org/TR/html5/" title="Latest version of HTML 5">Latest
version of HTML 5</a> available at http://www.w3.org/TR/html5/.</dd><dt><a id="ref_IA2" name="ref_IA2"></a>[IA2]</dt><dd><cite><a href="http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2">IAccessible2</a></cite>. Available at http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2.</dd><dt><a id="ref_MSAA" name="ref_MSAA"></a>[MSAA]</dt><dd><cite><a href="http://msdn.microsoft.com/en-us/library/ms697707.aspx">Microsoft Active Accessibility (MSAA)</a></cite>. Available at http://msdn.microsoft.com/en-us/library/ms697707.aspx.</dd><dt><a class="normref" id="ref_RFC2119" name="ref_RFC2119"></a>[RFC2119]</dt><dd><cite><a href="http://www.rfc-editor.org/rfc/rfc2119.txt">Key words for use in RFCs to indicate requirement levels</a></cite>, RFC 2119, S. Bradner, March 1997. Available at: http://www.rfc-editor.org/rfc/rfc2119.txt.</dd><dt><a id="ref_UAAG" name="ref_UAAG"></a>[UAAG]</dt><dd><cite><a href="http://www.w3.org/TR/2002/REC-UAAG10-20021217/">User Agent Accessibility Guidelines 1.0</a></cite>, I. Jacobs, J. Gunderson, E. Hansen, Editors, W3C Recommendation, 17 December 2002, http://www.w3.org/TR/2002/REC-UAAG10-20021217/. <a href="http://www.w3.org/TR/UAAG10/" title="Latest version of User Agent Accessibility Guidelines 1.0">Latest version</a> available at http://www.w3.org/TR/UAAG10/.</dd><dt><a id="ref_UIA-ARIA" name="ref_UIA-ARIA"></a>[UIA-ARIA]</dt><dd><cite><a href="http://msdn.microsoft.com/en-us/library/ee684013%28VS.85%29.aspx">UI Automation for W3C Accessible Rich Internet Applications Specification</a></cite>. Available at http://msdn.microsoft.com/en-us/library/ee684013%28VS.85%29.aspx.</dd><dt><a id="ref_WCAG20" name="ref_WCAG20"></a>[WCAG20]</dt><dd> <cite> <a href="http://www.w3.org/TR/2007/WD-WCAG20-20071211/">Web Content Accessibility Guidelines 2.0</a></cite>, B. Caldwell, G. Vanderheiden, L. Guarino Reid, M. Cooper, Editors, W3C Working Draft (work in progress), 11 December 2007, http://www.w3.org/TR/2007/WD-WCAG20-20071211/. <a href="http://www.w3.org/TR/WCAG20/" title="Latest version of Web Content Accessibility Guidelines 2.0">Latest version of WCAG 2.0 </a> available at http://www.w3.org/TR/WCAG20/.</dd></dl>
</div>
</div>
<div class="section" id="acknowledgements">
<h3><span class="tocnum">7.2. </span> Acknowledgments</h3>
<p>The following people contributed to the development of this document.</p>
<div class="section" id="ack_group">
<h4><span class="tocnum">7.2.1. </span> Participants in the PFWG at the time of publication</h4>
<ol><li>David Bolter (Mozilla) </li><li>Sally Cain (Royal National Institute of Blind People)</li><li>Michael Cooper (W3C/MIT)</li><li>James Craig (Apple Inc.) </li><li>Steve Faulkner (Invited Expert, The Paciello Group) </li><li>Geoff Freed (Invited Expert, NCAM)</li><li>Jon Gunderson (Invited Expert, UIUC)</li><li>Markus Gylling (DAISY Consortium)</li><li>Sean Hayes (Microsoft Corporation)</li><li>Kenny Johar (Vision Australia) </li><li>Matthew King (IBM Corporation)</li><li>Gez Lemon (International Webmasters Association / HTML Writers Guild (IWA-HWG))</li><li>Thomas Logan (HiSoftware Inc.)</li><li>William Loughborough (Invited Expert)</li><li>Shane McCarron (Invited Expert, Aptest)</li><li>Charles McCathieNevile (Opera Software)</li><li>Mary Jo Mueller (IBM Corporation)</li><li>James Nurthen (Oracle Corporation) </li><li>Joshue O'Connor (Invited Expert) </li><li>Artur Ortega (Yahoo!, Inc.)</li><li>Sarah Pulis (Media Access Australia)</li><li>Gregory Rosmaita (Invited Expert)</li><li>Janina Sajka (Invited Expert, The Linux Foundation)</li><li>Joseph Scheuhammer (Invited Expert, Inclusive Design Research Centre, OCAD University) </li><li>Stefan Schnabel (SAP AG) </li><li>Richard Schwerdtfeger (IBM Corporation)</li><li>Lisa Seeman (Invited Expert, Aqueous) </li><li>Cynthia Shelly (Microsoft Corporation) </li><li>Andi Snow-Weaver (IBM Corporation)</li><li>Gregg Vanderheiden (Invited Expert, Trace)</li><li>Léonie Watson (Invited Expert, Nomensa)</li><li>Gottfried Zimmermann (Invited Expert, Access Technologies Group)</li></ol>
</div>
<div class="section" id="ack_others">
<h4><span class="tocnum">7.2.2. </span> Other previously active PFWG participants and other contributors to the Accessible Rich Internet Applications specification</h4>
<p>Special thanks to Aaron Leventhal for effort and insight as he implemented a working prototype of accessibility <abbr title="Application Programming Interface">API</abbr> bindings. Special thanks to Al Gilman for his work while chair of the PFWG in bringing the ARIA technology to fruition.</p>
<p> Jim Allan (TSB), Simon Bates, Chris Blouch (AOL), Judy Brewer (W3C/MIT), Ben Caldwell (Trace), Charles Chen (Google, Inc.), Christian Cohrs, Dimitar Denev (Frauenhofer Gesellschaft), Donald Evans (AOL), Kentarou Fukuda (IBM Corporation), Becky Gibson (IBM), Alfred S. Gilman, Andres Gonzalez (Adobe Systems Inc.), Georgios Grigoriadis (SAP AG), Jeff Grimes (Oracle), Barbara Hartel, John Hrvatin (Microsoft Corporation), Masahiko Kaneko (Microsoft Corporation), Earl Johnson (Sun), Jael Kurz, Diego La Monica (International Webmasters Association / HTML Writers Guild (IWA-HWG)), Aaron Leventhal (IBM Corporation), Alex Li (SAP), Linda Mao (Microsoft), Anders Markussen (Opera Software), Matthew May (Adobe Systems Inc.), Lisa Pappas (Society for Technical Communication (STC)), Dave Pawson (RNIB), David Poehlman, Simon Pieters (Opera Software), T.V. Raman (Google, Inc.), Tony Ross (Microsoft Corporation), Martin Schaus (SAP AG), Marc Silbey (Microsoft Corporation), Henri Sivonen (Mozilla), Henny Swan (Opera Software), Vitaly Sourikov, Mike Squillace (IBM), Ryan Williams (Oracle), Tom Wlodkowski.</p>
</div>
<div class="section" id="ack_funders">
<h4><span class="tocnum">7.2.3. </span> Enabling funders</h4>
<p>This publication has been funded in part with Federal funds from the U.S. Department of Education, National Institute on Disability and Rehabilitation Research (NIDRR) under contract number ED-OSE-10-C-0067. The content of this publication does not necessarily reflect the views or policies of the U.S. Department of Education, nor does mention of trade names, commercial products, or organizations imply endorsement by the U.S. Government.</p>
</div>
</div>
</div>
</body></html>