1、BSI Standards Publication Information technology Interoperability with assistive technology (AT) Part 2: Windows accessibility application programming interface (API) PD ISO/IEC TR 13066-2:201 6National foreword This Published Document is the UK implementation of ISO/IEC TR 13066-2:2016. It supersed
2、es PD ISO/IEC TR 13066-2:2012 which is withdrawn. The UK participation in its preparation was entrusted to Technical Committee ICT/-/6, ICT Accessibility. A list of organizations represented on this committee can be obtained on request to its secretary. This publication does not purport to include a
3、ll the necessary provisions of a contract. Users are responsible for its correct application. The British Standards Institution 2016. Published by BSI Standards Limited 2016 ISBN 978 0 580 87486 4 ICS 11.180.99; 35.180 Compliance with a British Standard cannot confer immunity from legal obligations.
4、 This Published Document was published under the authority of the Standards Policy and Strategy Committee on 29 February 2016. Amendments/corrigenda issued since publication Date Text affected PUBLISHED DOCUMENT PD ISO/IEC TR 13066-2:2016Information technology Interoperability with assistive technol
5、ogy (AT) Part 2: Windows accessibility application programming interface (API) Technologies de linformation Interoprabilit avec les technologies dassistance Partie 2: Interface de programmation dapplications (API) daccessibilit Windows TECHNICAL REPORT ISO/IEC TR 13066-2 Second edition 2016-02-01 Re
6、ference number ISO/IEC TR 13066-2:2016(E) ISO/IEC 2016 PD ISO/IEC TR 13066-2:2016ii ISO/IEC 2016 All rights reserved COPYRIGHT PROTECTED DOCUMENT ISO/IEC 2016, Published in Switzerland All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwis
7、e in any form or by any means, electronic 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 office Ch.
8、 de Blandonnet 8 CP 401 CH-1214 Vernier, Geneva, Switzerland Tel. +41 22 749 01 11 Fax +41 22 749 09 47 copyrightiso.org www.iso.org ISO/IEC TR 13066-2:2016(E) PD ISO/IEC TR 13066-2:2016Foreword v Introductionvi 1 Scope . 1 2 T erms and definitions . 1 3 General description and architecture of the M
9、icrosoft Windows Automation API.7 3.1 General description . 7 3.1.1 Microsoft Active Accessibility overview 7 3.1.2 UI Automation overview . 8 3.1.3 IAccessibleEx interface . 9 3.2 Architecture 10 4 Using the API12 4.1 Using the Microsoft Active Accessibility API 12 4.1.1 Types of Microsoft Active A
10、ccessibility support 13 4.1.2 Retrieving an accessible object 13 4.1.3 The WM_GETOBJECT message .13 4.1.4 Special values of Object Identifier 14 4.2 Using the UI Automation API .15 4.2.1 UI Automation model 15 4.2.2 UI Automation tree .16 4.2.3 UI Automation control patterns, control types, properti
11、es, and events16 4.3 Using the IAccessibleEx interface 21 4.3.1 The IAccessibleEx interface implementation .21 5 Exposing User Interface Element Information.24 5.1 General 24 5.2 Exposing UI Elements with Microsoft Active Accessibility 25 5.2.1 How an MSAA Server exposes relevant properties .25 5.2.
12、2 Provide support for the Accessible Object structure .26 5.2.3 Support hit testing .27 5.2.4 Generate appropriate WinEvents .27 5.2.5 Object identifier .27 5.2.6 How MSAA clients access exposed UI elements 28 5.3 Exposing UI Elements with UI Automation .28 5.3.1 Types of providers .28 5.3.2 UI Auto
13、mation provider concepts 28 5.3.3 Provider interfaces 29 5.3.4 Property values 30 5.3.5 Provider navigation 30 5.3.6 Provider reparenting .31 5.3.7 Provider repositioning .31 5.3.8 How UI Automation clients access exposed UI Elements 32 6 Exposing UI Element actions.33 6.1 Exposing UI Element action
14、s in MSAA 33 6.2 Exposing UI Element actions in UI Automation 33 6.2.1 UI Automation control pattern components.33 6.2.2 Control patterns in providers and clients .34 6.2.3 Dynamic control patterns .34 6.2.4 Control patterns and related interfaces 34 7 Keyboard focus36 7.1 MSAA keyboard focus and se
15、lection 36 7.1.1 Focus and selection properties and methods 36 7.1.2 Events triggered in menus 37 7.2 UI Automation keyboard focus and selection 37 ISO/IEC 2016 All rights reserved iii Contents Page ISO/IEC TR 13066-2:2016(E) PD ISO/IEC TR 13066-2:2016ISO/IEC TR 13066-2:2016(E) 7.2.1 Focus 37 7.2.2
16、Selection .38 8 Events 44 8.1 WinEvents 44 8.1.1 USERs role in WinEvents 44 8.1.2 Receiving event notifications .45 8.1.3 Sending events 45 8.1.4 The allocation of WinEvent IDs 45 8.2 UI Automation events .46 8.2.1 How providers raise events .47 8.2.2 How clients register for and process events .48
17、9 Pr ogr ammatic modifications of stat es, pr operties, v alues, and tex t .48 9.1 UI Automation specifications 48 9.1.1 Introduction 48 9.1.2 UI Automation elements 49 9.1.3 UI Automation tree .49 9.1.4 UI Automation properties .50 9.1.5 UI Automation control patterns .50 9.1.6 UI Automation contro
18、l types 50 10 Design considerations 9.1.7 UI Automation events .50 .51 10.1 UI Automation design considerations 51 10.1.1 UI Automation clients .51 10.1.2 UI Automation providers .54 10.1.3 Coexistence and interoperability with Microsoft Active Accessibility .57 10.2 IAccessibleEx design considerati
19、ons 58 10.2.1 Design consideration for providers before implementing the IAccessibleEx interface 58 10.2.2 IAccessibleEx interface for providers .58 11 Further Information 10.2.3 IAccessibleEx interface for clients .59 63 11.1 Microsoft Active Accessibility and Extensibility .63 11.2 UI Automation e
20、xtensibility features 63 11.2.1 Registration of custom UI Automation properties, events, and control patterns .63 Annex A 11.2.2 How clients and providers support custom control patterns 64 (informative) Microsoft Active Accessibility to Automation Proxy 65 Annex B (informative) UI Automation to Mic
21、rosoft Active Accessibility Bridge 72 Annex C (informative) UI Automation for W3C Accessible Rich Internet Applications (ARIA) Specification.77 Annex D (informative) Other Useful APIs for Development and Support of Assistive Technologies.81 Bibliography .88 iv ISO/IEC 2016 All rights reserved PD ISO
22、/IEC TR 13066-2:2016Foreword ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form the specialized system for worldwide standardization. National bodies that are members of ISO or IEC participate in the development of International Stan
23、dards through technical committees established by the respective organization to deal with particular fields of technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in liaison with ISO and
24、 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. The procedures used to develop this document and those intended for its further maintenance are described in the ISO/IEC Directives, Part 1. In particula
25、r the different approval criteria needed for the different types of document should be noted. This document was drafted in accordance with the editorial 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 docum
26、ent 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 patent 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
27、.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 explanation on the meaning of ISO specific terms and expressions related to conformity assessment, as well as information about ISOs adherence to t
28、he WTO principles in the Technical Barriers to Trade (TBT), see the following URL: Foreword Supplementary information. The committee responsible for this document is ISO/IEC JTC 1, Information technology, Subcommittee SC 35, User interfaces. This second edition cancels and replaces the first edition
29、 (ISO/IEC/TR 130662:2012), which has been technically revised. ISO/IEC/TR 13066 consists of the following parts, under the general title Information technology Interoperability with assistive technology (AT): Part 1: Requirements and recommendations for interoperability Part 2: Windows accessibility
30、 application programming interface (API) Part 3: IAccessible2 accessibility application programming interface (API) Part 4: Linux/UNIX graphical environments accessibility API Part 6: Java accessibility application programming interface (API) ISO/IEC 2016 All rights reserved v ISO/IEC TR 13066-2:201
31、6(E) PD ISO/IEC TR 13066-2:2016ISO/IEC TR 13066-2:2016(E) Introduction Individuals with a wide range of functional disabilities, impairments, and difficulties require specific technology to enable computers and software to be accessible to them. This part of ISO/IEC 13066 provides information about
32、the Microsoft Windows Automation Frameworks, including Microsoft Active Accessibility, User Interface (UI) Automation, and the common interfaces of these accessibility frameworks including the IAccessibleEx interface specification. The intent of this part of ISO/IEC 13066 is to provide information a
33、nd 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 applications can be written in such a way that they are fully compatible with the Microsoft Accessibility APIs available on the Microsoft Wi
34、ndows operating system. vi ISO/IEC 2016 All rights reserved PD ISO/IEC TR 13066-2:2016Information technology Interoperability with assistive technology (AT) Part 2: Windows accessibility application programming interface (API) 1 Scope This part of ISO/IEC 13066 specifies services provided in the Mic
35、rosoft 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 application programming interfaces (APIs) for allowing software applications to enable accessible technologies on the Microsoft Windows platform
36、. Another goal of this part of ISO/IEC 13066 is to facilitate extensibility and interoperability by enabling implementations by multiple vendors on multiple platforms. This part of ISO/IEC 13066 is applicable to the broad range of ergonomics and how ergonomics apply to human interaction with softwar
37、e systems. 2 T erms an d definiti ons For the purposes of this document, the following terms and definitions apply. 2.1 application programming interface API standard set of documented and supported routines that expose operating system programming interfaces and services to applications Note 1 to e
38、ntry: 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 operating system services that are exposed by APIs include administration and management, diagnostics, graphics and multimedia, ne
39、tworking, security, system services, user interfaces, and accessibility. 2.2 accessibility degree to which a computer system is easy to use by all people, including those with disabilities 2.3 accessible object part of user interface object that is accessible by Microsoft Active Accessibility Note 1
40、 to entry: An accessible object is represented by an IAccessible interface and a ChildId identifier 2.4 Accessible Rich Internet Applications ARIA accessibility framework from W3C that exposes web content to assistive technologies such as screen readers and speech commanding programs TECHNICAL REPOR
41、T ISO/IEC TR 13066-2:2016(E) ISO/IEC 2016 All rights reserved 1 PD ISO/IEC TR 13066-2:2016ISO/IEC TR 13066-2:2016(E) 2.5 Assistive Technology AT technology designed to provide accessibility support to individuals with physical or cognitive impairments or disabilities Note 1 to entry: Assistive Techn
42、ology can be manifested through both hardware and software. 2.6 Accessibility Toolkit Linux Accessibility Toolkit ATK programming support accessibility features in their applications 2.7 automation replacement of manual operations by computerized methods Note 1 to entry: With respect to this part of
43、 ISO/IEC 13066, automation is a way to manipulate an applications user interface from outside the application. 2.8 automation element object or element that is accessible by the UI Automation object model Note 1 to entry: Similar to accessible objects in Microsoft Active Accessibility, an automation
44、 element in UI Automation represents a piece or a part of the user interface, such as button, window, or desktop. 2.9 Audio Video Interleaved AVI format that enables both audio and video data in a file container 2.10 C# programming language designed for building applications that run on the .NET Fra
45、mework Note 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, such as language interoperability, security, and garbage collection. 2.11 callback f
46、unction function or procedure that third party or client code supplies to a component, often by passing a function pointer through the components API Note 1 to entry: The component may then call this code at specific times. This technique is often used by components to signal client code that some e
47、vent has taken place, or to request client code to perform some specific task. 2.12 clients component that uses the services of another component Note 1 to entry: In this part of ISO/IEC 13066, client refers more specifically to a component that uses the services of Microsoft Active Accessibility or
48、 UI Automation, or both, to access, identify, or manipulate the user interface (UI) elements of an application 2 ISO/IEC 2016 All rights reserved PD ISO/IEC TR 13066-2:20162.13 Common Language Runtime CLR Microsofts commercial implementation of the Common Language Infrastructure (CLI) specification
49、Note 1 to entry: The CLI provides a specification for executable code and the execution environment in which it runs Note 2 to entry: At the centre of the CLI are a unified type system, a virtual execution system, and a specification for multiple programming languages to share the type system and compile into a common intermediate language. 2.14 Component Object Model COM object-oriented programming model that defines how objects interact within a single process or between processes Note 1 to entry: In COM,