-
Notifications
You must be signed in to change notification settings - Fork 1
Description
The iOS accessibility API documentation is incomplete, and many APIs that are needed for a web browser to support accessibility web standards are undocumented. Further, it’s difficult to infer how to use them based on WebKit’s open source implementation because there appears to be a closed-source system bundle which is tailored for and loaded into WebKit at runtime.
This lack of visibility makes it difficult to enumerate a full list of gaps. There are many closed-source methods loaded at runtime, and we don’t have visibility into their full signature or how they are used. Here are a couple examples that we know of:
- While some trait integer constants are public, others needed for a web engine like “visited”, or “radio button” are not.
- While some notification type integer constants are public, others needed for a web engine, like “value changed” are not. The closed-source bundle has a method loaded at runtime into the WebKit wrapper named
accessibilityOverrideProcessNotification. It takes a string, such asAXValueChangedorAXSelectedTextChanged, internally maps it to a private integer constant representing the notification type, and forwards it to the platform viaUIAccessibilityPostNotification.
Supporting accessibility web standards is table stakes functionality for a web browser. In order to do this, all of the accessibility APIs used by WebKit must be documented and stable, and WebKit should ideally consume them in the same manner as third-party browser engines.