From 1a063270f5de37384f29ebb3db7711515374dbd5 Mon Sep 17 00:00:00 2001 From: Keith Cirkel Date: Thu, 23 May 2024 16:01:44 +0100 Subject: [PATCH 1/9] add arianotify draft --- index.html | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 73f45be7e..066c621f7 100644 --- a/index.html +++ b/index.html @@ -16703,8 +16703,8 @@

Presentational Roles Conflict Resolution

-

IDL Interface

-

Conforming user agents MUST implement the following IDL interface.

+

IDL Interfaces

+

Conforming user agents MUST implement the following IDL interfaces.

Interface Mixin ARIAMixin

@@ -16784,6 +16784,33 @@ 

Interface Mixin ARIAMixin

IDL Attribute Name Notes or Exceptions.

+
+

Interface Mixin ARIANotifyMixin

+
+          enum AriaNotifyInterrupt { "none", "all", "pending" };
+          enum AriaNotifyPriority { "none", "important" };
+    
+          dictionary AriaNotificationOptions {
+            AriaNotifyInterrupt interrupt = "none";
+            AriaNotifyPriority priority = "none";
+            DOMString notificationId = "";
+          };
+          interface mixin ARIANotifyMixin {
+            void ariaNotify(DOMString announcement, optional AriaNotificationOptions options = {});
+          };
+          Element includes ARIANotifyMixin;
+          Document includes ARIANotifyMixin;
+        
+ +

User Agent processing for the ariaNotify(announcement, options) method steps are:

+
    +
  1. Let priority be options["priority"].

  2. +
  3. Let interrupt be options["interrupt"].

  4. +
  5. Let id be options["notifyId"].

  6. +
  7. Run the aria notify steps given node, announcement, priority, interrupt, and id.

  8. +
+ +

ARIA Attribute Correspondence

From 07096d44d1da588e91e86af15ebf9ee337f296a9 Mon Sep 17 00:00:00 2001 From: Keith Cirkel Date: Thu, 23 May 2024 16:02:32 +0100 Subject: [PATCH 2/9] add arianotify draft --- core-aam/index.html | 118 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 116 insertions(+), 2 deletions(-) diff --git a/core-aam/index.html b/core-aam/index.html index 19c3e427b..e440e5eaa 100644 --- a/core-aam/index.html +++ b/core-aam/index.html @@ -6915,7 +6915,9 @@

aria-disabled=false

-

aria-dropeffect=copy, move, link, execute, or popup

+

+ aria-dropeffect=copy, move, link, execute, or popup (deprecated) +

@@ -6951,7 +6953,7 @@

aria-dropeffect=c

-

aria-dropeffect=none

+

aria-dropeffect=none (deprecated)

@@ -11200,6 +11202,118 @@

Special Events for Menus

+
+

Algorithms

+

Some APIs, provide methods which require...

+

ARIANotifyMixin Algorithm Mapping Tables

+

ariaNotify

+

To aria notify given node, announcement, priority, interrupt, and id:

+
+ + + + + + + + + + + + + + + + + + + + + + +
ARIA Specification + aria notify +
MSAA + IAccessible2
UIA +
    +
  1. +

    Let notificationProcessing be null.

    +
  2. +
  3. +

    + If interrupt is "none" and priority is "none" set notificationProcessing to NotificationProcessing_All. +

    +
  4. +
  5. +

    + If interrupt is "none" and priority is "important" set notificationProcessing to + NotificationProcessing_ImportantAll. +

    +
  6. +
  7. +

    + If interrupt is "all" and priority is "none" set notificationProcessing to + NotificationProcessing_MostRecent. +

    +
  8. +
  9. +

    + If interrupt is "all" and priority is "important" set notificationProcessing to + NotificationProcessing_ImportantMostRecent. +

    +
  10. +
  11. +

    + If interrupt is "pending" and priority is "none" set notificationProcessing to + NotificationProcessing_CurrentThenMostRecent. +

    +
  12. +
  13. +

    + If interrupt is "pending" and priority is "important" set notificationProcessing to + NotificationProcessing_ImportantMostRecent. +

    +
  14. +
  15. +

    Assert: notificationProcessing is not null.

    +
  16. +
  17. +

    + Call UiaRaiseNotificationEvent with given node, NotificationKind_ActionCompleted, notificationProcessing, announcement, + and id. +

    +
  18. +
+
ATK/AT-SPI +
    + +
+
AX API +
    +
  1. +

    Let document be node's associated document.

    +
  2. +
  3. +

    Let window be document's associated window.

    +
  4. +
  5. +

    Let notification be NSAccessibilityAnnouncementRequestedNotification.

    +
  6. +
  7. +

    Let mapped_priority be NSAccessibilityPriorityHigh if priority is "important", otherwise NSAccessibilityPriorityMedium.

    +
  8. +
  9. +

    Let userInfo be a NSDictionary with the following keys:

    +
      +
    1. NSAccessibilityAnnouncementKey as announcement
    2. +
    3. NSAccessibilityPriorityKey as mapped_priority
    4. +
    +
  10. +
  11. +

    Call NSAccessibilityPostNotificationWithUserInfo with given window, notification, and userInfo.

    +
  12. +
+
+

Privacy considerations

From 96542db548d8e34373a035756293fc82adaff454 Mon Sep 17 00:00:00 2001 From: pkra Date: Thu, 13 Mar 2025 11:35:53 +0000 Subject: [PATCH 3/9] chore: prettier --- core-aam/index.html | 4 +--- index.html | 27 ++++++++++++++++++++------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/core-aam/index.html b/core-aam/index.html index e440e5eaa..82b579569 100644 --- a/core-aam/index.html +++ b/core-aam/index.html @@ -11228,9 +11228,7 @@

ariaNotify

Let notificationProcessing be null.

  • -

    - If interrupt is "none" and priority is "none" set notificationProcessing to NotificationProcessing_All. -

    +

    If interrupt is "none" and priority is "none" set notificationProcessing to NotificationProcessing_All.

  • diff --git a/index.html b/index.html index 066c621f7..868f2a82b 100644 --- a/index.html +++ b/index.html @@ -16801,15 +16801,28 @@

    Interface Mixin ARIANotifyMixin

    Element includes ARIANotifyMixin; Document includes ARIANotifyMixin; - -

    User Agent processing for the ariaNotify(announcement, options) method steps are:

    + +

    + User Agent processing for the + ariaNotify(announcement, options) + method steps are: +

      -
    1. Let priority be options["priority"].

    2. -
    3. Let interrupt be options["interrupt"].

    4. -
    5. Let id be options["notifyId"].

    6. -
    7. Run the aria notify steps given node, announcement, priority, interrupt, and id.

    8. +
    9. +

      Let priority be options["priority"].

      +
    10. +
    11. +

      Let interrupt be options["interrupt"].

      +
    12. +
    13. +

      Let id be options["notifyId"].

      +
    14. +
    15. +

      Run the aria notify steps given node, announcement, priority, interrupt, and id.

      +
    -
  • From 648e03473ea74665433000ed922b7066c5a5f57f Mon Sep 17 00:00:00 2001 From: pkra Date: Thu, 13 Mar 2025 13:23:06 +0000 Subject: [PATCH 4/9] chore: prettier --- accname/index.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/accname/index.html b/accname/index.html index a685deaad..2c020a2aa 100644 --- a/accname/index.html +++ b/accname/index.html @@ -628,7 +628,8 @@

    Computation steps

  • Host Language Label: Otherwise, if the current node's native markup provides an [=attribute=] (e.g. alt) or [=element=] (e.g. HTML label or SVG title) that defines a text alternative, return that alternative in the form of - a flat string as defined by the host language, unless the current node is exposed as presentational (role="presentation" or role="none"). + a flat string as defined by the host language, unless the current node is exposed as presentational (role="presentation" or + role="none").
    See HTML-AAM, SVG-AAM, or other host language documentation for more information on markup that defines a text alternative. From 06a2e78432af313cf5b25d3469f1b0b3f70841bb Mon Sep 17 00:00:00 2001 From: Keith Cirkel Date: Thu, 20 Mar 2025 09:11:07 +0000 Subject: [PATCH 5/9] remove errenous rebase changes --- accname/index.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/accname/index.html b/accname/index.html index 2c020a2aa..a685deaad 100644 --- a/accname/index.html +++ b/accname/index.html @@ -628,8 +628,7 @@

    Computation steps

  • Host Language Label: Otherwise, if the current node's native markup provides an [=attribute=] (e.g. alt) or [=element=] (e.g. HTML label or SVG title) that defines a text alternative, return that alternative in the form of - a flat string as defined by the host language, unless the current node is exposed as presentational (role="presentation" or - role="none"). + a flat string as defined by the host language, unless the current node is exposed as presentational (role="presentation" or role="none").
    See HTML-AAM, SVG-AAM, or other host language documentation for more information on markup that defines a text alternative. From d5bf15dd30cfcc0e6a78fcb888e6671898bdc2e1 Mon Sep 17 00:00:00 2001 From: Keith Cirkel Date: Thu, 20 Mar 2025 11:57:04 +0000 Subject: [PATCH 6/9] rework to newest iteration of v1 proposla --- core-aam/index.html | 77 +++++++++++++++++++-------------------------- index.html | 19 +++-------- 2 files changed, 38 insertions(+), 58 deletions(-) diff --git a/core-aam/index.html b/core-aam/index.html index 82b579569..55e114885 100644 --- a/core-aam/index.html +++ b/core-aam/index.html @@ -11207,7 +11207,7 @@

    Algorithms

    Some APIs, provide methods which require...

    ARIANotifyMixin Algorithm Mapping Tables

    ariaNotify

    -

    To aria notify given node, announcement, priority, interrupt, and id:

    +

    To aria notify given node, announcement, and priority:

    @@ -11218,65 +11218,57 @@

    ariaNotify

    - - - - + + + + + + + - + @@ -11291,10 +11283,7 @@

    ariaNotify

    Let window be document's associated window.

  • -

    Let notification be NSAccessibilityAnnouncementRequestedNotification.

    -
  • -
  • -

    Let mapped_priority be NSAccessibilityPriorityHigh if priority is "important", otherwise NSAccessibilityPriorityMedium.

    +

    Let mapped_priority be NSAccessibilityPriorityHigh if priority is "high", otherwise NSAccessibilityPriorityMedium.

  • Let userInfo be a NSDictionary with the following keys:

    @@ -11304,7 +11293,7 @@

    ariaNotify

  • -

    Call NSAccessibilityPostNotificationWithUserInfo with given window, notification, and userInfo.

    +

    Call NSAccessibilityPostNotificationWithUserInfo with window, NSAccessibilityAnnouncementRequestedNotification, and userInfo.

  • diff --git a/index.html b/index.html index 4b9e945af..51f98921b 100644 --- a/index.html +++ b/index.html @@ -16787,16 +16787,13 @@

    Interface Mixin ARIAMixin

    Interface Mixin ARIANotifyMixin

    -          enum AriaNotifyInterrupt { "none", "all", "pending" };
    -          enum AriaNotifyPriority { "none", "important" };
    -    
    +          enum AriaNotifyPriority { "normal", "high" };
    +
               dictionary AriaNotificationOptions {
    -            AriaNotifyInterrupt interrupt = "none";
    -            AriaNotifyPriority priority = "none";
    -            DOMString notificationId = "";
    +            AriaNotifyPriority priority = "normal";
               };
               interface mixin ARIANotifyMixin {
    -            void ariaNotify(DOMString announcement, optional AriaNotificationOptions options = {});
    +            undefined ariaNotify(DOMString announcement, optional AriaNotificationOptions options = {});
               };
               Element includes ARIANotifyMixin;
               Document includes ARIANotifyMixin;
    @@ -16814,13 +16811,7 @@ 

    Interface Mixin ARIANotifyMixin

    Let priority be options["priority"].

  • -

    Let interrupt be options["interrupt"].

    -
  • -
  • -

    Let id be options["notifyId"].

    -
  • -
  • -

    Run the aria notify steps given node, announcement, priority, interrupt, and id.

    +

    Run the aria notify steps given node, announcement, and priority.

  • From 70534915d767207068a88d4e8162852f62807285 Mon Sep 17 00:00:00 2001 From: keithamus Date: Thu, 20 Mar 2025 11:57:32 +0000 Subject: [PATCH 7/9] chore: prettier --- accname/index.html | 3 ++- core-aam/index.html | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/accname/index.html b/accname/index.html index a685deaad..2c020a2aa 100644 --- a/accname/index.html +++ b/accname/index.html @@ -628,7 +628,8 @@

    Computation steps

  • Host Language Label: Otherwise, if the current node's native markup provides an [=attribute=] (e.g. alt) or [=element=] (e.g. HTML label or SVG title) that defines a text alternative, return that alternative in the form of - a flat string as defined by the host language, unless the current node is exposed as presentational (role="presentation" or role="none"). + a flat string as defined by the host language, unless the current node is exposed as presentational (role="presentation" or + role="none").
    See HTML-AAM, SVG-AAM, or other host language documentation for more information on markup that defines a text alternative. diff --git a/core-aam/index.html b/core-aam/index.html index 55e114885..d9590cb0a 100644 --- a/core-aam/index.html +++ b/core-aam/index.html @@ -11223,8 +11223,8 @@

    ariaNotify

  • Return.

    - Implementations integrating with MSAA + IAccessible2 should only emit announcements using UIA, if available. - In cases where IUA is unavailable, no announcement should be made. + Implementations integrating with MSAA + IAccessible2 should only emit announcements using UIA, if available. In cases where IUA is + unavailable, no announcement should be made.

  • @@ -11239,15 +11239,15 @@

    ariaNotify

  • - Call UiaRaiseNotificationEvent with node, NotificationKind_ActionCompleted, mapped_priority, announcement, - and the empty string. + Call UiaRaiseNotificationEvent with node, NotificationKind_ActionCompleted, mapped_priority, announcement, and the empty + string.

  • -
    MSAA + IAccessible2
    UIA
    1. -

      Let notificationProcessing be null.

      -
    2. -
    3. -

      If interrupt is "none" and priority is "none" set notificationProcessing to NotificationProcessing_All.

      -
    4. -
    5. -

      - If interrupt is "none" and priority is "important" set notificationProcessing to - NotificationProcessing_ImportantAll. -

      -
    6. -
    7. -

      - If interrupt is "all" and priority is "none" set notificationProcessing to - NotificationProcessing_MostRecent. -

      -
    8. -
    9. -

      - If interrupt is "all" and priority is "important" set notificationProcessing to - NotificationProcessing_ImportantMostRecent. +

      Return.

      +

      + Implementations integrating with MSAA + IAccessible2 should only emit announcements using UIA, if available. + In cases where IUA is unavailable, no announcement should be made.

    10. +
    +
    UIA +
    1. -

      - If interrupt is "pending" and priority is "none" set notificationProcessing to - NotificationProcessing_CurrentThenMostRecent. -

      +

      Let mapped_priority be NotificationProcessing_ImportantAll if priority is "high", otherwise NotificationProcessing_All.

    2. - If interrupt is "pending" and priority is "important" set notificationProcessing to - NotificationProcessing_ImportantMostRecent. + Call UiaRaiseNotificationEvent with node, NotificationKind_ActionCompleted, mapped_priority, announcement, + and the empty string.

    3. +
    +
    ATK + +
    1. -

      Assert: notificationProcessing is not null.

      +

      Let mapped_priority be Atk.Live.ATK_LIVE_ASSERTIVE if priority is "high", otherwise Atk.Live.ATK_LIVE_POLITE.

    2. -

      - Call UiaRaiseNotificationEvent with given node, NotificationKind_ActionCompleted, notificationProcessing, announcement, - and id. -

      +

      Call g_signal_emit_by_name with node, "notification", announcement, and mapped_priority.

    ATK/AT-SPIAT-SPI
      - +
    1. +

      Let mapped_priority be ATSPI_LIVE_ASSERTIVE if priority is "high", otherwise ATSPI_LIVE_POLITE.

      +
    2. +
    3. +

      Send a DBUS signal ATSPI_DBUS_INTERFACE_EVENT_OBJECT with node, "announcement", announcement, and mapped_priority.

      +
    ATK + ATK
    1. From 71e8f3ad7408d24bd7e67dab6d71f4e26b18771d Mon Sep 17 00:00:00 2001 From: Keith Cirkel Date: Thu, 20 Mar 2025 12:00:01 +0000 Subject: [PATCH 8/9] avoid "should" --- core-aam/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core-aam/index.html b/core-aam/index.html index d9590cb0a..32b0e6aa5 100644 --- a/core-aam/index.html +++ b/core-aam/index.html @@ -11223,8 +11223,8 @@

      ariaNotify

    2. Return.

      - Implementations integrating with MSAA + IAccessible2 should only emit announcements using UIA, if available. In cases where IUA is - unavailable, no announcement should be made. + Implementations integrating with MSAA + IAccessible2 can only emit announcements using UIA, if available. In cases where IUA is + unavailable, no announcement will be made.

    From c10107b32dc123ae90a85d2efae38d56a254cd9b Mon Sep 17 00:00:00 2001 From: Keith Cirkel Date: Thu, 20 Mar 2025 16:02:39 +0000 Subject: [PATCH 9/9] s/iua/uia/ --- core-aam/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-aam/index.html b/core-aam/index.html index 32b0e6aa5..0877a2ecc 100644 --- a/core-aam/index.html +++ b/core-aam/index.html @@ -11223,7 +11223,7 @@

    ariaNotify

  • Return.

    - Implementations integrating with MSAA + IAccessible2 can only emit announcements using UIA, if available. In cases where IUA is + Implementations integrating with MSAA + IAccessible2 can only emit announcements using UIA, if available. In cases where UIA is unavailable, no announcement will be made.