1、BSI Standards PublicationInformation technology Interoperability with assistivetechnology (AT)Part 2: Windows accessibility application programming interface (API)PD ISO/IEC TR 13066-2:2016National forewordThis Published Document is the UK implementation of ISO/IEC TR13066-2:2016. It supersedes PD I
2、SO/IEC TR 13066-2:2012 which iswithdrawn.The UK participation in its preparation was entrusted to TechnicalCommittee ICT/-/6, ICT Accessibility.A list of organizations represented on this committee can be obtained onrequest to its secretary.This publication does not purport to include all the necess
3、ary provisions ofa contract. Users are responsible for its correct application. The British Standards Institution 2016.Published by BSI Standards Limited 2016ISBN 978 0 580 87486 4ICS 11.180.99; 35.180Compliance with a British Standard cannot confer immunity fromlegal obligations.This Published Docu
4、ment was published under the authority of theStandards Policy and Strategy Committee on 29 February 2016.Amendments/corrigenda issued since publicationDate Text affectedPUBLISHED DOCUMENTPD ISO/IEC TR 13066-2:2016Information technology Interoperability with assistive technology (AT) Part 2: Windows
5、accessibility application programming interface (API)Technologies de linformation Interoprabilit avec les technologies dassistance Partie 2: Interface de programmation dapplications (API) daccessibilit WindowsTECHNICAL REPORTISO/IEC TR13066-2Second edition2016-02-01Reference numberISO/IEC TR 13066-2
6、:2016(E) ISO/IEC 2016PD ISO/IEC TR 13066-2:2016ii ISO/IEC 2016 All rights reservedCOPYRIGHT PROTECTED DOCUMENT ISO/IEC 2016, Published in SwitzerlandAll rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form or by any means, elect
7、ronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below or ISOs member body in the country of the requester.ISO copyright officeCh. de Blandonnet 8 CP 401CH-1214 Vernier
8、, Geneva, SwitzerlandTel. +41 22 749 01 11Fax +41 22 749 09 47copyrightiso.orgwww.iso.orgISO/IEC TR 13066-2:2016(E)PD ISO/IEC TR 13066-2:2016Foreword vIntroductionvi1 Scope . 12 Terms and definitions. 13 General description and architecture of the Microsoft Windows Automation API. 73.1 General descr
9、iption . 73.1.1 Microsoft Active Accessibility overview 73.1.2 UI Automation overview . 83.1.3 IAccessibleEx interface .93.2 Architecture 104 Using the API124.1 Using the Microsoft Active Accessibility API 124.1.1 Types of Microsoft Active Accessibility support 134.1.2 Retrieving an accessible objec
10、t 134.1.3 The WM_GETOBJECT message . 134.1.4 Special values of Object Identifier 144.2 Using the UI Automation API . 154.2.1 UI Automation model 154.2.2 UI Automation tree .164.2.3 UI Automation control patterns, control types, properties, and events164.3 Using the IAccessibleEx interface 214.3.1 Th
11、e IAccessibleEx interface implementation .215 Exposing User Interface Element Information.245.1 General 245.2 Exposing UI Elements with Microsoft Active Accessibility 255.2.1 How an MSAA Server exposes relevant properties .255.2.2 Provide support for the Accessible Object structure .265.2.3 Support
12、hit testing .275.2.4 Generate appropriate WinEvents .275.2.5 Object identifier .275.2.6 How MSAA clients access exposed UI elements 285.3 Exposing UI Elements with UI Automation . 285.3.1 Types of providers .285.3.2 UI Automation provider concepts 285.3.3 Provider interfaces 295.3.4 Property values
13、305.3.5 Provider navigation 305.3.6 Provider reparenting .315.3.7 Provider repositioning .315.3.8 How UI Automation clients access exposed UI Elements 326 Exposing UI Element actions.336.1 Exposing UI Element actions in MSAA 336.2 Exposing UI Element actions in UI Automation 336.2.1 UI Automation co
14、ntrol pattern components.336.2.2 Control patterns in providers and clients .346.2.3 Dynamic control patterns .346.2.4 Control patterns and related interfaces 347 Keyboard focus367.1 MSAA keyboard focus and selection 367.1.1 Focus and selection properties and methods 367.1.2 Events triggered in menus
15、 377.2 UI Automation keyboard focus and selection 37 ISO/IEC 2016 All rights reserved iiiContents PageISO/IEC TR 13066-2:2016(E)PD ISO/IEC TR 13066-2:2016ISO/IEC TR 13066-2:2016(E)7.2.1 Focus 377.2.2 Selection . 388 Events448.1 WinEvents 448.1.1 USERs role in WinEvents 448.1.2 Receiving event notifi
16、cations .458.1.3 Sending events 458.1.4 The allocation of WinEvent IDs 458.2 UI Automation events .468.2.1 How providers raise events .478.2.2 How clients register for and process events .489 Programmatic modifications of states, properties, values, and text.489.1 UI Automation specifications 489.1.
17、1 Introduction 489.1.2 UI Automation elements 499.1.3 UI Automation tree .499.1.4 UI Automation properties . 509.1.5 UI Automation control patterns . 509.1.6 UI Automation control types 5010 Design considerations9.1.7 UI Automation events .50.5110.1 UI Automation design considerations 5110.1.1 UI Au
18、tomation clients .5110.1.2 UI Automation providers .5410.1.3 Coexistence and interoperability with Microsoft Active Accessibility .5710.2 IAccessibleEx design considerations 5810.2.1 Design consideration for providers before implementing the IAccessibleEx interface 5810.2.2 IAccessibleEx interface f
19、or providers . 5811 Further Information10.2.3 IAccessibleEx interface for clients .596311.1 Microsoft Active Accessibility and Extensibility .6311.2 UI Automation extensibility features 6311.2.1 Registration of custom UI Automation properties, events, and control patterns .63Annex A 11.2.2 How clien
20、ts and providers support custom control patterns 64(informative) Microsoft Active Accessibility to Automation Proxy65Annex B (informative) UI Automation to Microsoft Active Accessibility Bridge 72Annex C (informative) UI Automation for W3C Accessible Rich Internet Applications (ARIA) Specification.7
21、7Annex D (informative) Other Useful APIs for Development and Support of Assistive Technologies.81Bibliography.88iv ISO/IEC 2016 All rights reservedPD ISO/IEC TR 13066-2:2016ForewordISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form t
22、he specialized system for worldwide standardization. National bodies that are members of ISO or IEC participate in the development of International Standards through technical committees established by the respective organization to deal with particular fields of technical activity. ISO and IEC tech
23、nical committees collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of information technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1.Th
24、e procedures used to develop this document and those intended for its further maintenance are described in the ISO/IEC Directives, Part 1. In particular the different approval criteria needed for the different types of document should be noted. This document was drafted in accordance with the editor
25、ial rules of the ISO/IEC Directives, Part 2 (see www.iso.org/directives).Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights. Details of any paten
26、t rights identified during the development of the document will be in the Introduction and/or on the ISO list of patent declarations received (see www.iso.org/patents).Any trade name used in this document is information given for the convenience of users and does not constitute an endorsement.For an
27、 explanation on the meaning of ISO specific terms and expressions related to conformity assessment, as well as information about ISOs adherence to the WTO principles in the Technical Barriers to Trade (TBT), see the following URL: Foreword Supplementary information .The committee responsible for thi
28、s document is ISO/IEC JTC 1, Information technology, Subcommittee SC 35, User interfaces.This second edition cancels and replaces the first edition (ISO/IEC/TR 130662:2012), which has been technically revised.ISO/IEC/TR 13066 consists of the following parts, under the general title Information techn
29、ology Interoperability with assistive technology (AT): Part 1: Requirements and recommendations for interoperability Part 2: Windows accessibility application programming interface (API) Part 3: IAccessible2 accessibility application programming interface (API) Part 4: Linux/UNIX graphical environme
30、nts accessibility API Part 6: Java accessibility application programming interface (API) ISO/IEC 2016 All rights reserved vISO/IEC TR 13066-2:2016(E)PD ISO/IEC TR 13066-2:2016ISO/IEC TR 13066-2:2016(E)IntroductionIndividuals with a wide range of functional disabilities, impairments, and difficulties
31、 require specific technology to enable computers and software to be accessible to them. This part of ISO/IEC 13066 provides information about the Microsoft Windows Automation Frameworks, including Microsoft Active Accessibility, User Interface (UI) Automation, and the common interfaces of these acce
32、ssibility frameworks including the IAccessibleEx interface specification.The intent of this part of ISO/IEC 13066 is to provide information and application programming interfaces (APIs) needed to use these frameworks. A primary goal of this part of ISO/IEC 13066 is to ensure that accessible software
33、 applications can be written in such a way that they are fully compatible with the Microsoft Accessibility APIs available on the Microsoft Windows operating system.vi ISO/IEC 2016 All rights reservedPD ISO/IEC TR 13066-2:2016Information technology Interoperability with assistive technology (AT) Part
34、 2: Windows accessibility application programming interface (API)1 ScopeThis part of ISO/IEC 13066 specifies services provided in the Microsoft Windows platform to enable assistive technologies (AT) to interact with other software. One goal of this part of ISO/IEC 13066 is to define a set of applica
35、tion programming interfaces (APIs) for allowing software applications to enable accessible technologies on the Microsoft Windows platform. Another goal of this part of ISO/IEC 13066 is to facilitate extensibility and interoperability by enabling implementations by multiple vendors on multiple platfo
36、rms.This part of ISO/IEC 13066 is applicable to the broad range of ergonomics and how ergonomics apply to human interaction with software systems.2 Terms and definitionsFor the purposes of this document, the following terms and definitions apply.2.1application programming interfaceAPIstandard set of
37、 documented and supported routines that expose operating system programming interfaces and services to applicationsNote 1 to entry: An API is usually a source code interface that an operating system, library, or service provides to support requests made by computer programs.EXAMPLE Examples of opera
38、ting system services that are exposed by APIs include administration and management, diagnostics, graphics and multimedia, networking, security, system services, user interfaces, and accessibility.2.2accessibilitydegree to which a computer system is easy to use by all people, including those with di
39、sabilities2.3accessible objectpart of user interface object that is accessible by Microsoft Active AccessibilityNote 1 to entry: An accessible object is represented by an IAccessible interface and a ChildId identifier2.4Accessible Rich Internet ApplicationsARIAaccessibility framework from W3C that e
40、xposes web content to assistive technologies such as screen readers and speech commanding programsTECHNICAL REPORT ISO/IEC TR 13066-2:2016(E) ISO/IEC 2016 All rights reserved 1PD ISO/IEC TR 13066-2:2016ISO/IEC TR 13066-2:2016(E)2.5Assistive TechnologyATtechnology designed to provide accessibility su
41、pport to individuals with physical or cognitive impairments or disabilitiesNote 1 to entry: Assistive Technology can be manifested through both hardware and software.2.6Accessibility ToolkitLinux Accessibility ToolkitATKprogramming support accessibility features in their applications2.7automationrep
42、lacement of manual operations by computerized methodsNote 1 to entry: With respect to this part of ISO/IEC 13066, automation is a way to manipulate an applications user interface from outside the application.2.8automation elementobject or element that is accessible by the UI Automation object modelN
43、ote 1 to entry: Similar to accessible objects in Microsoft Active Accessibility, an automation element in UI Automation represents a piece or a part of the user interface, such as button, window, or desktop.2.9Audio Video InterleavedAVIformat that enables both audio and video data in a file containe
44、r2.10C#programming language designed for building applications that run on the .NET FrameworkNote 1 to entry: C#, which is an evolution of C and C+, is type safe and object-oriented.Note 2 to entry: Because it is compiled as managed code, it benefits from the services of the common language runtime,
45、 such as language interoperability, security, and garbage collection.2.11callback functionfunction or procedure that third party or client code supplies to a component, often by passing a function pointer through the components APINote 1 to entry: The component may then call this code at specific ti
46、mes. This technique is often used by components to signal client code that some event has taken place, or to request client code to perform some specific task.2.12clientscomponent that uses the services of another componentNote 1 to entry: In this part of ISO/IEC 13066, client refers more specifical
47、ly to a component that uses the services of Microsoft Active Accessibility or UI Automation, or both, to access, identify, or manipulate the user interface (UI) elements of an application2 ISO/IEC 2016 All rights reservedPD ISO/IEC TR 13066-2:20162.13Common Language RuntimeCLRMicrosofts commercial i
48、mplementation of the Common Language Infrastructure (CLI) specificationNote 1 to entry: The CLI provides a specification for executable code and the execution environment in which it runsNote 2 to entry: At the centre of the CLI are a unified type system, a virtual execution system, and a specificat
49、ion for multiple programming languages to share the type system and compile into a common intermediate language.2.14Component Object ModelCOMobject-oriented programming model that defines how objects interact within a single process or between processesNote 1 to entry: In COM, clients have access to an object through interfaces implemented on the object.2.15content viewsubset of the control view of the UI Automation treeNote 1 to entry: The content view contains UI items that convey the actual information in a user in