107
edits
No edit summary |
(apple seems to have been inspired by me, yay! update to be a intro page to UA instead.) |
||
| Line 1: | Line 1: | ||
= | = Introduction to Universal Access = | ||
This | This page previously hosted a quick reference to Apple's accessibility framework. Since then, Apple has updated it to be much more useful. See Apple's [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Protocols/NSAccessibility_Protocol/index.html definition of the NSAccessibility protocol] for a good quick reference. | ||
In the following sections, we will use a few commonly used acronyms for convenience: | In the following sections, we will use a few commonly used acronyms for convenience: | ||
| Line 7: | Line 7: | ||
* '''UA''' refers to ''Universal Access'' - Apple's name for all of their accessibility APIs. | * '''UA''' refers to ''Universal Access'' - Apple's name for all of their accessibility APIs. | ||
== | == Everything is an Attribute == | ||
Developers used to MSAA or ATK will find that UA is very easy to use. Everything is basically done just by querying elements for attributes, and setting them. | |||
In this way, one could think of UA kind of like a hash table. You ask for an attribute, and get an array, a string, a number, or any other value describing the data you asked for. | |||
The first thing an AT typically does, is to ask the [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Protocols/NSAccessibility_Protocol/Reference/Reference.html#//apple_ref/doc/uid/20000945-BCIIHIGG query widgets about the attributes they support]. It can then go on to see which of those that are "settable", i.e. changable by the user. For example, the value attribute of a textfield is settable. | |||
An attribute | === Roles === | ||
An AT can know the "role" of a widget just by asking for the value of the [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Protocols/NSAccessibility_Protocol/Reference/Reference.html#//apple_ref/doc/c_ref/NSAccessibilityRoleAttribute role attribute]. The role tells the AT a lot about the widget behaves (button? listbox? etc.) | |||
=== Actions === | |||
An action is a way for the user to interact with the interface, e.g. through a screen reader. For example clicking a button, deleting, or incrementing a value. To know [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Protocols/NSAccessibility_Protocol/Reference/Reference.html#//apple_ref/doc/uid/20000945-DontLinkElementID_20 which actions] a widget supports, is as easy as asking [http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Protocols/NSAccessibility_Protocol/index.html asking for an array of them]. | |||
== | === Notifications === | ||
[http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Protocols/NSAccessibility_Protocol/Reference/Reference.html#//apple_ref/doc/uid/20000945-DontLinkElementID_21 Notifications] are sent out to the ATs when something significant in the UI has changed. For example, a new window was opened, or new rows were added to a table. | |||
== WebKit additions == | == WebKit additions == | ||
WebKit has | Because UA is easily extendable with new attributes, roles and notifications, WebKit has implemented some custom extensions to UA to make it work better in a web context. We've gathered them here as well. | ||
[[Mac:Accessibility/UniversalAccess:Webkit|WebKit UA extensions]] | [[Mac:Accessibility/UniversalAccess:Webkit|WebKit UA extensions]] | ||
= Comments, suggestions, etc = | = Comments, suggestions, etc = | ||
Feel free to add and improve this introduction, or even copy it to another wiki. | |||
--[[User:Hwaara|HakanW]] 05:10, 24 May 2006 (PDT) | |||
--[[User:Hwaara|HakanW]] | |||
edits