From a175b70e1f2fe2e3b1477df20add066d3bfd38e5 Mon Sep 17 00:00:00 2001 From: James Craig Date: Fri, 18 Oct 2024 09:11:40 -0700 Subject: [PATCH 1/6] editorial: initial (mostly empty) PDF-AAM doc (#2356) --- .github/labeler.yml | 7 +- pdf-aam/.pr-preview.json | 4 + pdf-aam/README.md | 4 + pdf-aam/index.html | 355 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 369 insertions(+), 1 deletion(-) create mode 100644 pdf-aam/.pr-preview.json create mode 100644 pdf-aam/README.md create mode 100644 pdf-aam/index.html diff --git a/.github/labeler.yml b/.github/labeler.yml index 9cab9f6c7..a89989416 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -46,4 +46,9 @@ spec:svg-aam: spec:mathml-aam: - any: - changed-files: - - 'mathml/aam/**/*' \ No newline at end of file + - 'mathml/aam/**/*' + +spec:pdf-aam: + - any: + - changed-files: + - 'pdf-aam/**' \ No newline at end of file diff --git a/pdf-aam/.pr-preview.json b/pdf-aam/.pr-preview.json new file mode 100644 index 000000000..a239968f5 --- /dev/null +++ b/pdf-aam/.pr-preview.json @@ -0,0 +1,4 @@ +{ + "src_file": "index.html", + "type": "respec" +} diff --git a/pdf-aam/README.md b/pdf-aam/README.md new file mode 100644 index 000000000..ff5c3997b --- /dev/null +++ b/pdf-aam/README.md @@ -0,0 +1,4 @@ + +# Specification 'pdf-aam' + +This is the repository for PDF Accessibility API Mappings (pdf-aam), which is part of the [ARIA suite](https://www.w3.org/WAI/ARIA/deliverables). General information about editing specifications is in the [main ARIA repository readme](https://github.com/w3c/aria/). diff --git a/pdf-aam/index.html b/pdf-aam/index.html new file mode 100644 index 000000000..677196834 --- /dev/null +++ b/pdf-aam/index.html @@ -0,0 +1,355 @@ + + + + PDF Accessibility API Mappings 1.0 + + + + + + + + + + + + + + + +
+

+ This document describes how [=user agents=] should expose semantics of PDF content to accessibility APIs. This helps users with disabilities to obtain and interact with information using assistive technologies. Documenting these mappings promotes interoperable exposure of + roles, states, properties, and events implemented by accessibility APIs and helps to ensure that this information appears in a manner consistent with author intent. +

+
+
+

+ The Accessible Rich Internet Applications Working Group seeks feedback on any aspect of the specification. When submitting feedback, please consider issues in the context of the companion + documents. To comment, file an issue in the W3C pdf-aam GitHub repository. If this is + not feasible, send email to public-aria@w3.org (comment archive). In-progress updates to the document may be viewed in the publicly visible editors' draft. +

+
+
+

Introduction

+

+ TBD. Some from Core-AAM. +

+
+

Accessibility APIs

+

TBD. Should we duplicate or cross-reference this content from the corresponding Core-AAM section?

+
+
+

Comparing Accessibility APIs

+

TBD. Should we duplicate or cross-reference this content from the corresponding Core-AAM section?

+
+
Accessible Names and Descriptions
+

TBD. Should we duplicate or cross-reference this content from the corresponding Core-AAM section?

+
+
+
+
+
+

RFC-2119 Keywords

+

+ RFC-2119 keywords are formatted in uppercase and contained in a strong element with class="rfc2119". 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. +

+
+
+

Normative and Informative Sections

+

The indication whether a section is normative or non-normative (informative) applies to the entire section including sub-sections.

+

+ 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. +

+
+
+
+

Important Terms

+
+

TBD. Can we add only PDF-specific terms here and cross-reference the others from common dir?

+
+
term 1
+
+

+ definition 1 +

+
+
term 2
+
+

+ definition 2 +

+
+
+
+
+
+

Mapping WAI-ARIA to Accessibility APIs

+

TBD. Should we duplicate or cross-reference this content from the corresponding Core-AAM section?

+ + +
+

Role mapping

+

TBD. Should we duplicate or cross-reference this content from the corresponding Core-AAM section?

+ +
+

General rules

+

TBD. Should we duplicate or cross-reference this content from the corresponding Core-AAM section?

+
+ +
+

Role Mapping Tables

+

example

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + example +
MSAA + IAccessible2 + Role: ROLE_SYSTEM_EXAMPLE
+ +
UIA + Control Type: Example
+
ATK/AT-SPI + Role: ROLE_EXAMPLE
+
+ AX API[Note 1] + + AXRole: AXxample
+ AXSubrole:
+
+ + +
+

+ [Note 1] + Footnote content +

+
+ +
+
+ +
+

State and Property Mapping

+

This section describes how to expose PDF states and [=ARIA/properties=].

+
+

General rules

+

TBD. Should we duplicate or cross-reference this content from the corresponding Core-AAM section?

+
+
+

State and Property Mapping Tables

+
+

Not Mapped

+

+ There are a number of occurrences in the table where a given state or property is declared "Not mapped". In some cases, this occurs for the default value of the state/property, and is equivalent to its absence. User agents might find it quicker to map the value than check to see if it is the default. For computational efficiency, user agents MAY expose the state or property value if doing so is equivalent to not mapping it. These cases are marked with an asterisk. +

+

+ In other cases, it is mandatory that the state/property not be mapped, since exposing it implies a related affordance. An example is + aria-grabbed. Its absence not only indicates that the accessible object is not grabbed, but further defines it as not grab-able. These cases are marked as "Not mapped" without an asterisk. +

+
+ +

aria-example=true

+ + + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria-example=true +
MSAA + IAccessible2 + Object Attribute: example: true
+
UIA + Property: example: true
+
ATK/AT-SPI + Object Attribute: example:true
+
AX API + Property: AXExample: YES
+
+ +
+
+
+

Special Processing Requiring Additional Computation

+

TBD. Should we duplicate or cross-reference this content from the corresponding Core-AAM section?

+
+
+

Actions

+

TBD. Should we duplicate or cross-reference this content from the corresponding Core-AAM section?

+ +
+
+ +
+

Privacy considerations

+

TBD. Should we duplicate or cross-reference this content from the corresponding Core-AAM section?

+
+
+

Security considerations

+

This specification introduces no new security considerations.

+
+ +
+

Change Log

+

TBD. Should we duplicate or cross-reference this content from the corresponding Core-AAM section?

+
+
+

Acknowledgments

+

The following people contributed to the development of this document.

+ +
+
+
+ + From 35a7f30938b1946a41a92d82480ca91e0b611d27 Mon Sep 17 00:00:00 2001 From: Rahim Abdi Date: Thu, 24 Oct 2024 09:55:19 -0700 Subject: [PATCH 2/6] Editorial: Create documentation/aria-idl.md (#2340) Co-authored-by: Rahim Abdi Co-authored-by: Keith Cirkel --- documentation/aria-idl.md | 235 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 235 insertions(+) create mode 100644 documentation/aria-idl.md diff --git a/documentation/aria-idl.md b/documentation/aria-idl.md new file mode 100644 index 000000000..64378e70a --- /dev/null +++ b/documentation/aria-idl.md @@ -0,0 +1,235 @@ +# ARIA IDL + +## IDL (Interface Definition Language) Overview +### What is IDL (Interface Definition Language)? +- IDL (Interface Definition Language) is broadly used to define object interfaces in computing. On the web, Web IDL is “used to describe interfaces that are intended to be implemented in web browsers” and “...provides a syntax for specifying the surface APIs of web platform objects, as well as JavaScript bindings that detail how those APIs manifest as JavaScript constructs.”([Web IDL Section 1. Introduction](https://webidl.spec.whatwg.org/#introduction)) +- Interfaces + - The HTML DOM API is a good example: all HTML elements (e.g., `