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 &amp; 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>&lt;div&gt;</code> element based on user interactions to make it look and behave like a popup menu. Unfortunately, the <code>&lt;div&gt;</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>&lt;span&gt;</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>&lt;a&gt;</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>&lt;input&gt;</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>&lt;input  type="text"&gt;</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>&lt;input type="text" role="spinbutton" ...&gt;</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>&lt;table role="foo"&gt;</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>&lt;input type="text"  role="bar"&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;nil&gt;</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>&lt;div role="grid"&gt;</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:&lt;value&gt;</code>
                    <p>Expose the <code>IA2_STATE_SUPPORTS_AUTOCOMPLETION</code> equivalent state</p></td><td rowspan="1" colspan="1">Expose <code>autocomplete=&lt;value&gt;</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Object attribute <code>autocomplete:&lt;value&gt;</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:&lt;value&gt;</code></td><td rowspan="1" colspan="1">Expose <code>dropeffect=&lt;value&gt;</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Expose as object attribute <code>dropeffect:&lt;value&gt;</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:&lt;value&gt;</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:&lt;value&gt;</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:&lt;value&gt;</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:&lt;value&gt;</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:&lt;value&gt;</code>.
                    <p>Expose as object attribute <code>container-relevant:&lt;value&gt;</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=&lt;value&gt;</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Expose as object attribute <code>relevant:&lt;value&gt;</code>.
                  <p>Expose as object attribute <code>container-relevant:&lt;value&gt;</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:&lt;value&gt;</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:&lt;value&gt;</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:&lt;value&gt;</code> and <code>groupPosition</code>.</td><td rowspan="1" colspan="1">Expose as <code>setsize=&lt;value&gt;</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Expose object attribute <code>setsize:&lt;value&gt;</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:&lt;value&gt;</code></td><td rowspan="1" colspan="1">Expose as <code>sort=&lt;value&gt;</code> in <code>AriaProperties</code></td><td rowspan="1" colspan="1">Expose as object attribute <code>sort:&lt;value&gt;</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:&lt;value&gt;</code></td><td rowspan="1" colspan="1">Not mapped</td><td rowspan="1" colspan="1">If specified, expose as object attribute <code>sort:&lt;value&gt;</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:&lt;value&gt;</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:&lt;value&gt;</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>&lt;span&gt;</code> elements would have text alternatives of "Delete Documentation.pdf" and "Delete HolidayLetter.pdf", respectively.</p>
                          <p><code>&lt;h1&gt;Files&lt;/h1&gt;
  &lt;ul&gt;<br clear="none"/>
  &lt;li&gt;<br clear="none"/>
  &lt;a id="file_row1" href="./files/Documentation.pdf"&gt;Documentation.pdf&lt;/a&gt;<br clear="none"/>
  &lt;span role="button" tabindex="0" id="del_row1" aria-label="Delete" aria-labelledby="del_row1 file_row1"&gt;&lt;/span&gt;<br clear="none"/>
  &lt;/li&gt;<br clear="none"/>
  &lt;li&gt;<br clear="none"/>
  &lt;a id="file_row2" href="./files/HolidayLetter.pdf"&gt;HolidayLetter.pdf&lt;/a&gt;<br clear="none"/>
  &lt;span role="button" tabindex="0" id="del_row2" aria-label="Delete" aria-labelledby="del_row2 file_row2"&gt;&lt;/span&gt;<br clear="none"/>
  &lt;/li&gt;<br clear="none"/>
  &lt;/ul&gt;</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>&lt;label for=&gt;</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>&lt;strong&gt;</code>, the  <code>&lt;strong&gt;</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>