Update aria_properties.json5, create generated utility functions [chromium/src : main]

0 views
Skip to first unread message

Joanmarie Diggs (Gerrit)

unread,
Oct 5, 2025, 5:22:47 AMOct 5
to David Tseng, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, abigailbk...@google.com, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org
Attention needed from David Tseng

Joanmarie Diggs added 1 comment

Patchset-level comments
File-level comment, Patchset 10 (Latest):
Joanmarie Diggs . resolved

David: This CL started out as the one you reviewed to generate functions from aria_properties.json5. And then I figured, why not use it for even more things? And, well, it grew. 😇

There are more generated functions for attributes, plus name-from logic. Lots of test coverage. Using the generated functions in ax_object.cc/ax_node_object.cc led to finding several places where what we do is not in alignment with the ARIA spec. In those cases the current chromium behavior was preserved and TODOs added so we can revisit them.

PTAL and let me know if this is a good idea, or if things should be kept limited to what was done in the CL you reviewed. Thanks in advance!

Open in Gerrit

Related details

Attention is currently required from:
  • David Tseng
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I5feeae0da775d2ca6ee5b78c4e51fcf03ef1619c
Gerrit-Change-Number: 7003124
Gerrit-PatchSet: 10
Gerrit-Owner: Joanmarie Diggs <jdi...@igalia.com>
Gerrit-Reviewer: David Tseng <dts...@chromium.org>
Gerrit-Reviewer: Joanmarie Diggs <jdi...@igalia.com>
Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
Gerrit-Attention: David Tseng <dts...@chromium.org>
Gerrit-Comment-Date: Sun, 05 Oct 2025 09:22:30 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

David Tseng (Gerrit)

unread,
Oct 7, 2025, 4:57:16 PM (12 days ago) Oct 7
to Joanmarie Diggs, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, abigailbk...@google.com, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org
Attention needed from Joanmarie Diggs

David Tseng added 2 comments

File third_party/blink/renderer/core/html/aria_properties.json5
Line 19, Patchset 10 (Latest): "application",
David Tseng . unresolved

Was looking for an rdf version of ARIA 1.3. Does that exist? Only found something for ARIA 1.
https://www.w3.org/TR/wai-aria-1.1/img/rdf_model

I haven't manually verified the additions here, but can double check it against something. Will take some time to check it since it's a large change but wanted to ask first.

File third_party/blink/renderer/modules/accessibility/ax_node_object.cc
Line 553, Patchset 10 (Latest): const auto& idref_attrs = GetAriaIdrefAttrs();
David Tseng . unresolved

With these changes, are we introducing new attributes, new constraints, etc?

Wanted to see if this is a purely aesthetics, cleanup change or if we are introducing functional changes that we may have to test for.

Open in Gerrit

Related details

Attention is currently required from:
  • Joanmarie Diggs
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I5feeae0da775d2ca6ee5b78c4e51fcf03ef1619c
    Gerrit-Change-Number: 7003124
    Gerrit-PatchSet: 10
    Gerrit-Owner: Joanmarie Diggs <jdi...@igalia.com>
    Gerrit-Reviewer: David Tseng <dts...@chromium.org>
    Gerrit-Reviewer: Joanmarie Diggs <jdi...@igalia.com>
    Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
    Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
    Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
    Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
    Gerrit-Attention: Joanmarie Diggs <jdi...@igalia.com>
    Gerrit-Comment-Date: Tue, 07 Oct 2025 20:56:52 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Joanmarie Diggs (Gerrit)

    unread,
    Oct 8, 2025, 6:47:20 AM (11 days ago) Oct 8
    to David Tseng, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, abigailbk...@google.com, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org
    Attention needed from David Tseng

    Joanmarie Diggs added 5 comments

    File third_party/blink/renderer/core/html/aria_properties.json5
    David Tseng . resolved

    Was looking for an rdf version of ARIA 1.3. Does that exist? Only found something for ARIA 1.
    https://www.w3.org/TR/wai-aria-1.1/img/rdf_model

    I haven't manually verified the additions here, but can double check it against something. Will take some time to check it since it's a large change but wanted to ask first.

    Joanmarie Diggs

    I'll ask around (my colleague co-chairs the ARIA working group), but I'm not aware of any.

    File third_party/blink/renderer/modules/accessibility/ax_node_object.cc
    Line 553, Patchset 10 (Latest): const auto& idref_attrs = GetAriaIdrefAttrs();
    David Tseng . resolved

    With these changes, are we introducing new attributes, new constraints, etc?

    Wanted to see if this is a purely aesthetics, cleanup change or if we are introducing functional changes that we may have to test for.

    Joanmarie Diggs

    We are potentially introducing changes. A number of them were caught by existing tests. In each of those cases I added special-casing (along with a TODO comment) to the production code so that the existing behavior is preserved. I'll point those changes out in this CL. But there could be instances where we lack test coverage. I'll take a look at where coverage is missing for ax_object.cc and ax_node_object.cc.

    Line 3364, Patchset 10 (Latest): if (RoleSupportsAriaRequired(RoleValue())) {
    if (IsAriaAttributeTrue(html_names::kAriaRequiredAttr)) {
    return true;
    }
    }

    // TODO(accessibility): The ARIA spec says aria-required is supported on
    // radiogroup, not individual radio buttons. However, the
    // `aria-required-changed.html` test uses aria-required directly on a radio
    // button and expects it to be supported.
    if (RoleValue() == ax::mojom::blink::Role::kRadioButton) {
    if (IsAriaAttributeTrue(html_names::kAriaRequiredAttr)) {
    return true;
    }
    }
    Joanmarie Diggs . unresolved

    David: Here's an example where we had to special-case things because the ARIA spec and our implementation are out of alignment.

    Line 3760, Patchset 10 (Latest): // Special case: combobox roles used to support aria-orientation but it was
    // removed from the ARIA spec. We continue to honor explicit aria-orientation
    // attributes on comboboxes for backwards compatibility.
    // TODO(accessibility): Remove this once tests/content are updated.
    if (RoleValue() == ax::mojom::blink::Role::kComboBoxGrouping ||
    RoleValue() == ax::mojom::blink::Role::kComboBoxMenuButton ||
    RoleValue() == ax::mojom::blink::Role::kComboBoxSelect ||
    RoleValue() == ax::mojom::blink::Role::kTextFieldWithComboBox) {
    const AtomicString& aria_orientation =
    AriaTokenAttribute(html_names::kAriaOrientationAttr);
    if (EqualIgnoringASCIICase(aria_orientation, "horizontal")) {
    return kAccessibilityOrientationHorizontal;
    } else if (EqualIgnoringASCIICase(aria_orientation, "vertical")) {
    return kAccessibilityOrientationVertical;
    }
    // Fall through for combobox without explicit orientation
    }
    Joanmarie Diggs . unresolved

    David: Here's another example of special-casing to preserve existing behavior that is not in alignment with the ARIA spec.

    File third_party/blink/renderer/modules/accessibility/ax_object.cc
    Line 7852, Patchset 10 (Latest):
    // TODO(accessibility): The ARIA spec says name from: prohibited on the term
    // role, but that breaks DumpAccessibilityTreeTest.AccessibilityAriaTerm.
    if (RoleValue() == ax::mojom::blink::Role::kTerm) {
    return true;
    }

    // TODO(accessibility): The ARIA spec says name from: author on the math
    // role, but that breaks DumpAccessibilityTreeTest.AccessibilityAriaMath.
    if (RoleValue() == ax::mojom::blink::Role::kMath) {
    return true;
    }
    Joanmarie Diggs . unresolved

    David: Two more cases of preserving existing behavior that is not in alignment with the ARIA spec.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • David Tseng
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I5feeae0da775d2ca6ee5b78c4e51fcf03ef1619c
    Gerrit-Change-Number: 7003124
    Gerrit-PatchSet: 10
    Gerrit-Owner: Joanmarie Diggs <jdi...@igalia.com>
    Gerrit-Reviewer: David Tseng <dts...@chromium.org>
    Gerrit-Reviewer: Joanmarie Diggs <jdi...@igalia.com>
    Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
    Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
    Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
    Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
    Gerrit-Attention: David Tseng <dts...@chromium.org>
    Gerrit-Comment-Date: Wed, 08 Oct 2025 10:46:22 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: David Tseng <dts...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Joanmarie Diggs (Gerrit)

    unread,
    Oct 9, 2025, 12:46:39 PM (10 days ago) Oct 9
    to David Tseng, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, abigailbk...@google.com, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org
    Attention needed from David Tseng

    Joanmarie Diggs added 1 comment

    File third_party/blink/renderer/core/html/aria_properties.json5
    David Tseng . resolved

    Was looking for an rdf version of ARIA 1.3. Does that exist? Only found something for ARIA 1.
    https://www.w3.org/TR/wai-aria-1.1/img/rdf_model

    I haven't manually verified the additions here, but can double check it against something. Will take some time to check it since it's a large change but wanted to ask first.

    Joanmarie Diggs

    I'll ask around (my colleague co-chairs the ARIA working group), but I'm not aware of any.

    Joanmarie Diggs

    My colleague pointed out https://github.com/w3c/aria/blob/main/common/script/roleInfo.js which they are planning to start using for spec PRs, so that might come in handy.

    Gerrit-Comment-Date: Thu, 09 Oct 2025 16:45:51 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Joanmarie Diggs <jdi...@igalia.com>
    Comment-In-Reply-To: David Tseng <dts...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    David Tseng (Gerrit)

    unread,
    Oct 9, 2025, 1:29:30 PM (10 days ago) Oct 9
    to Joanmarie Diggs, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, abigailbk...@google.com, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org
    Attention needed from Joanmarie Diggs

    David Tseng added 1 comment

    File third_party/blink/renderer/modules/accessibility/ax_node_object.cc
    Line 553, Patchset 10 (Latest): const auto& idref_attrs = GetAriaIdrefAttrs();
    David Tseng . resolved

    With these changes, are we introducing new attributes, new constraints, etc?

    Wanted to see if this is a purely aesthetics, cleanup change or if we are introducing functional changes that we may have to test for.

    Joanmarie Diggs

    We are potentially introducing changes. A number of them were caught by existing tests. In each of those cases I added special-casing (along with a TODO comment) to the production code so that the existing behavior is preserved. I'll point those changes out in this CL. But there could be instances where we lack test coverage. I'll take a look at where coverage is missing for ax_object.cc and ax_node_object.cc.

    David Tseng

    I wonder if we can try to roll this out more gradually though I believe getting the spec compliant aria properties landed is the right choice.

    I think we're bound to regress behaviors in ax*object but also downstream in the browser accessibility platform accessibility APIs.

    Rollouts of this type have been done via flags. One starting point is to guard the changes behind a flag and I can help set up an experiment to ramp up things to a percentage of Chrome on progressively more channels. .e.g. load the re-vamped aria properties.json5 with the flag enabled. Haven't thought through how this may impact the changes in ax_object.

    This would allow us to land changes on trunk (for fuzz testing) but not ship it to dev, beta, stable till later.

    Let me know what you think or if there's a path forward with less work and that can keep things from regressing.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Joanmarie Diggs
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I5feeae0da775d2ca6ee5b78c4e51fcf03ef1619c
    Gerrit-Change-Number: 7003124
    Gerrit-PatchSet: 10
    Gerrit-Owner: Joanmarie Diggs <jdi...@igalia.com>
    Gerrit-Reviewer: David Tseng <dts...@chromium.org>
    Gerrit-Reviewer: Joanmarie Diggs <jdi...@igalia.com>
    Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
    Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
    Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
    Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
    Gerrit-Attention: Joanmarie Diggs <jdi...@igalia.com>
    Gerrit-Comment-Date: Thu, 09 Oct 2025 17:29:07 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Joanmarie Diggs (Gerrit)

    unread,
    Oct 11, 2025, 7:18:13 AM (8 days ago) Oct 11
    to David Tseng, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, abigailbk...@google.com, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org
    Attention needed from David Tseng

    Joanmarie Diggs added 1 comment

    File third_party/blink/renderer/modules/accessibility/ax_node_object.cc
    Line 553, Patchset 10: const auto& idref_attrs = GetAriaIdrefAttrs();
    David Tseng . resolved

    With these changes, are we introducing new attributes, new constraints, etc?

    Wanted to see if this is a purely aesthetics, cleanup change or if we are introducing functional changes that we may have to test for.

    Joanmarie Diggs

    We are potentially introducing changes. A number of them were caught by existing tests. In each of those cases I added special-casing (along with a TODO comment) to the production code so that the existing behavior is preserved. I'll point those changes out in this CL. But there could be instances where we lack test coverage. I'll take a look at where coverage is missing for ax_object.cc and ax_node_object.cc.

    David Tseng

    I wonder if we can try to roll this out more gradually though I believe getting the spec compliant aria properties landed is the right choice.

    I think we're bound to regress behaviors in ax*object but also downstream in the browser accessibility platform accessibility APIs.

    Rollouts of this type have been done via flags. One starting point is to guard the changes behind a flag and I can help set up an experiment to ramp up things to a percentage of Chrome on progressively more channels. .e.g. load the re-vamped aria properties.json5 with the flag enabled. Haven't thought through how this may impact the changes in ax_object.

    This would allow us to land changes on trunk (for fuzz testing) but not ship it to dev, beta, stable till later.

    Let me know what you think or if there's a path forward with less work and that can keep things from regressing.

    Joanmarie Diggs

    Absolutely. And whatever you think is best (e.g. flag) is fine with me. In the meantime here's my plan:

    1. Remove all changes to the production code (i.e. ax_node_object.cc and ax_object.cc) in this CL. (Done.)

       I don't *think* that merely changing the JSON file should break anything. Note that devtools-frontend also uses this file, but a code search + local grep turned up no consumers of the removed field (supportedAttributes). And I ran the script to regenerate the devtools-frontend ARIAProperties.js and built and tested using `--custom-devtools-frontend`. I see no differences, errors, etc. (Though getting a review from a devtools-frontend owner seems like a smart thing to do.)

    2. Break all the changes to the production code into smaller chunks. (Will be finished later today.) That should make them both easier to review and easier to determine if they belong behind a flag.

    Please let me know what you think. And thanks again!

    Open in Gerrit

    Related details

    Attention is currently required from:
    • David Tseng
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I5feeae0da775d2ca6ee5b78c4e51fcf03ef1619c
    Gerrit-Change-Number: 7003124
    Gerrit-PatchSet: 14
    Gerrit-Owner: Joanmarie Diggs <jdi...@igalia.com>
    Gerrit-Reviewer: David Tseng <dts...@chromium.org>
    Gerrit-Reviewer: Joanmarie Diggs <jdi...@igalia.com>
    Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
    Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
    Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
    Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
    Gerrit-Attention: David Tseng <dts...@chromium.org>
    Gerrit-Comment-Date: Sat, 11 Oct 2025 11:17:21 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: David Tseng <dts...@chromium.org>
    Comment-In-Reply-To: Joanmarie Diggs <jdi...@igalia.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Joanmarie Diggs (Gerrit)

    unread,
    Oct 12, 2025, 12:07:06 PM (7 days ago) Oct 12
    to David Tseng, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, abigailbk...@google.com, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org
    Attention needed from David Tseng

    Joanmarie Diggs added 1 comment

    Patchset-level comments
    File-level comment, Patchset 28 (Latest):
    Joanmarie Diggs . resolved

    David: I did some more work on the generated files. Now there are three templates. I also created a gist so that you can see what gets generated. (Couldn't find any artifacts in Luci.) https://gist.github.com/joanmarie/68915f5b2ccde5b5366d61bee264a60e

    Open in Gerrit

    Related details

    Attention is currently required from:
    • David Tseng
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I5feeae0da775d2ca6ee5b78c4e51fcf03ef1619c
    Gerrit-Change-Number: 7003124
    Gerrit-PatchSet: 28
    Gerrit-Owner: Joanmarie Diggs <jdi...@igalia.com>
    Gerrit-Reviewer: David Tseng <dts...@chromium.org>
    Gerrit-Reviewer: Joanmarie Diggs <jdi...@igalia.com>
    Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
    Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
    Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
    Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
    Gerrit-Attention: David Tseng <dts...@chromium.org>
    Gerrit-Comment-Date: Sun, 12 Oct 2025 16:06:06 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    David Tseng (Gerrit)

    unread,
    Oct 14, 2025, 12:42:16 PM (5 days ago) Oct 14
    to Joanmarie Diggs, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, abigailbk...@google.com, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org
    Attention needed from Joanmarie Diggs

    David Tseng voted and added 5 comments

    David Tseng added votes with a message

    lgtm % comments.

    Code-Review+1

    5 comments

    File third_party/blink/renderer/build/scripts/templates/ax_utilities_generated.h.tmpl
    Line 43, Patchset 28 (Latest):// General lookup function to get valid enum values for any ARIA attribute
    David Tseng . unresolved

    nit: let's use periods to end all comments.

    Line 49, Patchset 28 (Latest):CORE_EXPORT const AtomicString& InternalRoleToAriaRole(ax::mojom::blink::Role internal_role);
    David Tseng . unresolved

    Noting we're returning an AtomicString here but using std::string above.

    Wondering if that was intended?

    Line 61, Patchset 28 (Latest):CORE_EXPORT bool RoleSupports{{ attr.base_name }}(ax::mojom::blink::Role internal_role);
    David Tseng . unresolved

    Looks like we get some unexpected casing after template subs e.g.
    RoleSupportsAriaColindextext

    Line 61, Patchset 28 (Latest):CORE_EXPORT bool RoleSupports{{ attr.base_name }}(ax::mojom::blink::Role internal_role);
    David Tseng . unresolved

    I kind of like the direct RoleSupports<attribute> methods here, but do we want to consider reducing the number of methods and pass the attribute as an argument? i.e. RoleSupportsAttribute(role, attribute)?

    File third_party/blink/renderer/core/html/aria_properties.json5
    Line 337, Patchset 28 (Latest): name: "aria-labeledby",
    David Tseng . unresolved

    Is there an official decision noted somewhere that both spellings (aria-labeledby and aria-labelledby) are supported?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Joanmarie Diggs
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I5feeae0da775d2ca6ee5b78c4e51fcf03ef1619c
      Gerrit-Change-Number: 7003124
      Gerrit-PatchSet: 28
      Gerrit-Owner: Joanmarie Diggs <jdi...@igalia.com>
      Gerrit-Reviewer: David Tseng <dts...@chromium.org>
      Gerrit-Reviewer: Joanmarie Diggs <jdi...@igalia.com>
      Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
      Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
      Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
      Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
      Gerrit-Attention: Joanmarie Diggs <jdi...@igalia.com>
      Gerrit-Comment-Date: Tue, 14 Oct 2025 16:41:42 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Joanmarie Diggs (Gerrit)

      unread,
      Oct 15, 2025, 8:23:42 AM (4 days ago) Oct 15
      to David Tseng, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, abigailbk...@google.com, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org

      Joanmarie Diggs added 9 comments

      Patchset-level comments
      File-level comment, Patchset 29 (Latest):
      Joanmarie Diggs . resolved

      Thanks for the review! Changes made and gist updated with the updated generated files: https://gist.github.com/joanmarie/68915f5b2ccde5b5366d61bee264a60e

      File third_party/blink/renderer/build/scripts/templates/ax_utilities_generated.h.tmpl
      Line 43, Patchset 28:// General lookup function to get valid enum values for any ARIA attribute
      David Tseng . resolved

      nit: let's use periods to end all comments.

      Joanmarie Diggs

      Done

      Line 49, Patchset 28:CORE_EXPORT const AtomicString& InternalRoleToAriaRole(ax::mojom::blink::Role internal_role);
      David Tseng . resolved

      Noting we're returning an AtomicString here but using std::string above.

      Wondering if that was intended?

      Joanmarie Diggs

      It was not. I've been iterating on this change quite a bit. Thanks for catching that! Using AtomicString everywhere now.

      Line 61, Patchset 28:CORE_EXPORT bool RoleSupports{{ attr.base_name }}(ax::mojom::blink::Role internal_role);
      David Tseng . resolved

      I kind of like the direct RoleSupports<attribute> methods here, but do we want to consider reducing the number of methods and pass the attribute as an argument? i.e. RoleSupportsAttribute(role, attribute)?

      Joanmarie Diggs

      Done

      Line 61, Patchset 28:CORE_EXPORT bool RoleSupports{{ attr.base_name }}(ax::mojom::blink::Role internal_role);
      David Tseng . resolved

      Looks like we get some unexpected casing after template subs e.g.
      RoleSupportsAriaColindextext

      Joanmarie Diggs

      I could fix that by adding basenames for attributes to the JSON file. But the current casing, while admittedly less than ideal, is consistent with the ARIA attribute names in [html_names.cc](https://source.chromium.org/chromium/chromium/src/+/main:out/linux-Debug/gen/third_party/blink/renderer/core/html_names.cc;l=212;drc=07836fac7be4e6d77355bd9c673b4be0de3a41aa;bpv=0;bpt=1).

      Having said that, making the change you suggested about a single RoleSupportsAttribute() eliminates the functions with the unexpected casing.

      File third_party/blink/renderer/core/html/aria_properties.json5
      Line 337, Patchset 28: name: "aria-labeledby",
      David Tseng . resolved

      Is there an official decision noted somewhere that both spellings (aria-labeledby and aria-labelledby) are supported?

      Joanmarie Diggs

      I couldn't find one. But from some code searching, it looks like supporting both was inherited from WebKit. In addition, there's a note in the ARIA spec which says the following:

      The expected spelling of this property in U.S. English is "labeledby." However, the accessibility API features to which this property is mapped have established the "labelledby" spelling. This property is spelled that way to match the convention and minimize the difficulty for developers.

      1. I wonder how many web developers know how things are spelled in accessibility APIs.
      2. When the spec uses the word generically, e.g. "In the following code sample, the containing img and is appropriately labeled by the caption paragraph." They are using the U.S. English spelling.

      I think it's wise to continue supporting both forms.

      File third_party/blink/renderer/modules/accessibility/ax_node_object.cc
      Line 3364, Patchset 10: if (RoleSupportsAriaRequired(RoleValue())) {

      if (IsAriaAttributeTrue(html_names::kAriaRequiredAttr)) {
      return true;
      }
      }

      // TODO(accessibility): The ARIA spec says aria-required is supported on
      // radiogroup, not individual radio buttons. However, the
      // `aria-required-changed.html` test uses aria-required directly on a radio
      // button and expects it to be supported.
      if (RoleValue() == ax::mojom::blink::Role::kRadioButton) {
      if (IsAriaAttributeTrue(html_names::kAriaRequiredAttr)) {
      return true;
      }
      }
      Joanmarie Diggs . resolved

      David: Here's an example where we had to special-case things because the ARIA spec and our implementation are out of alignment.

      Joanmarie Diggs

      Acknowledged

      Line 3760, Patchset 10: // Special case: combobox roles used to support aria-orientation but it was

      // removed from the ARIA spec. We continue to honor explicit aria-orientation
      // attributes on comboboxes for backwards compatibility.
      // TODO(accessibility): Remove this once tests/content are updated.
      if (RoleValue() == ax::mojom::blink::Role::kComboBoxGrouping ||
      RoleValue() == ax::mojom::blink::Role::kComboBoxMenuButton ||
      RoleValue() == ax::mojom::blink::Role::kComboBoxSelect ||
      RoleValue() == ax::mojom::blink::Role::kTextFieldWithComboBox) {
      const AtomicString& aria_orientation =
      AriaTokenAttribute(html_names::kAriaOrientationAttr);
      if (EqualIgnoringASCIICase(aria_orientation, "horizontal")) {
      return kAccessibilityOrientationHorizontal;
      } else if (EqualIgnoringASCIICase(aria_orientation, "vertical")) {
      return kAccessibilityOrientationVertical;
      }
      // Fall through for combobox without explicit orientation
      }
      Joanmarie Diggs . resolved

      David: Here's another example of special-casing to preserve existing behavior that is not in alignment with the ARIA spec.

      Joanmarie Diggs

      Acknowledged

      File third_party/blink/renderer/modules/accessibility/ax_object.cc

      // TODO(accessibility): The ARIA spec says name from: prohibited on the term
      // role, but that breaks DumpAccessibilityTreeTest.AccessibilityAriaTerm.
      if (RoleValue() == ax::mojom::blink::Role::kTerm) {
      return true;
      }

      // TODO(accessibility): The ARIA spec says name from: author on the math
      // role, but that breaks DumpAccessibilityTreeTest.AccessibilityAriaMath.
      if (RoleValue() == ax::mojom::blink::Role::kMath) {
      return true;
      }
      Joanmarie Diggs . resolved

      David: Two more cases of preserving existing behavior that is not in alignment with the ARIA spec.

      Joanmarie Diggs

      Acknowledged

      Open in Gerrit

      Related details

      Attention set is empty
      Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I5feeae0da775d2ca6ee5b78c4e51fcf03ef1619c
        Gerrit-Change-Number: 7003124
        Gerrit-PatchSet: 29
        Gerrit-Owner: Joanmarie Diggs <jdi...@igalia.com>
        Gerrit-Reviewer: David Tseng <dts...@chromium.org>
        Gerrit-Reviewer: Joanmarie Diggs <jdi...@igalia.com>
        Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
        Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
        Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
        Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
        Gerrit-Comment-Date: Wed, 15 Oct 2025 12:22:45 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Joanmarie Diggs (Gerrit)

        unread,
        Oct 16, 2025, 6:28:01 AM (3 days ago) Oct 16
        to Yang Guo, David Tseng, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, abigailbk...@google.com, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org
        Attention needed from Yang Guo

        Joanmarie Diggs added 1 comment

        Patchset-level comments
        Joanmarie Diggs . resolved

        Yang: Could you please look at the changes to aria_properties.json5? I built devtools-frontend with those changes and did not notice any difference in the Accessibility panel, nor could I find anything consuming the supportedAttributes field beyond copying it to the generated files. But I don't want to break anything. Thanks in advance!

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Yang Guo
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I5feeae0da775d2ca6ee5b78c4e51fcf03ef1619c
        Gerrit-Change-Number: 7003124
        Gerrit-PatchSet: 29
        Gerrit-Owner: Joanmarie Diggs <jdi...@igalia.com>
        Gerrit-Reviewer: David Tseng <dts...@chromium.org>
        Gerrit-Reviewer: Joanmarie Diggs <jdi...@igalia.com>
        Gerrit-Reviewer: Yang Guo <yan...@chromium.org>
        Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
        Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
        Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
        Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
        Gerrit-Attention: Yang Guo <yan...@chromium.org>
        Gerrit-Comment-Date: Thu, 16 Oct 2025 10:27:47 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Yang Guo (Gerrit)

        unread,
        Oct 16, 2025, 6:49:09 AM (3 days ago) Oct 16
        to Joanmarie Diggs, Philip Pfaffe, David Tseng, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, abigailbk...@google.com, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org
        Attention needed from Joanmarie Diggs and Philip Pfaffe

        Yang Guo voted and added 1 comment

        Votes added by Yang Guo

        Commit-Queue+1

        1 comment

        Patchset-level comments
        Yang Guo . resolved

        Philip is the right person on my team to take a look.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Joanmarie Diggs
        • Philip Pfaffe
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I5feeae0da775d2ca6ee5b78c4e51fcf03ef1619c
        Gerrit-Change-Number: 7003124
        Gerrit-PatchSet: 29
        Gerrit-Owner: Joanmarie Diggs <jdi...@igalia.com>
        Gerrit-Reviewer: David Tseng <dts...@chromium.org>
        Gerrit-Reviewer: Joanmarie Diggs <jdi...@igalia.com>
        Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
        Gerrit-Reviewer: Yang Guo <yan...@chromium.org>
        Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
        Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
        Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
        Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
        Gerrit-Attention: Philip Pfaffe <pfa...@chromium.org>
        Gerrit-Attention: Joanmarie Diggs <jdi...@igalia.com>
        Gerrit-Comment-Date: Thu, 16 Oct 2025 10:48:53 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Philip Pfaffe (Gerrit)

        unread,
        Oct 17, 2025, 7:18:39 AM (2 days ago) Oct 17
        to Joanmarie Diggs, Yang Guo, David Tseng, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, abigailbk...@google.com, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org
        Attention needed from Joanmarie Diggs

        Philip Pfaffe voted and added 1 comment

        Votes added by Philip Pfaffe

        Code-Review+1

        1 comment

        Patchset-level comments
        Philip Pfaffe . resolved

        Changes look good from a devtools perspective.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Joanmarie Diggs
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I5feeae0da775d2ca6ee5b78c4e51fcf03ef1619c
        Gerrit-Change-Number: 7003124
        Gerrit-PatchSet: 29
        Gerrit-Owner: Joanmarie Diggs <jdi...@igalia.com>
        Gerrit-Reviewer: David Tseng <dts...@chromium.org>
        Gerrit-Reviewer: Joanmarie Diggs <jdi...@igalia.com>
        Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
        Gerrit-Reviewer: Yang Guo <yan...@chromium.org>
        Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
        Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
        Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
        Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
        Gerrit-Attention: Joanmarie Diggs <jdi...@igalia.com>
        Gerrit-Comment-Date: Fri, 17 Oct 2025 11:18:21 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Joanmarie Diggs (Gerrit)

        unread,
        Oct 17, 2025, 7:36:50 AM (2 days ago) Oct 17
        to Mason Freed, Philip Pfaffe, Yang Guo, David Tseng, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, abigailbk...@google.com, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org
        Attention needed from Mason Freed

        Joanmarie Diggs added 1 comment

        Patchset-level comments
        Joanmarie Diggs . resolved

        Mason: PTAL. Thanks in advance!

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Mason Freed
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I5feeae0da775d2ca6ee5b78c4e51fcf03ef1619c
        Gerrit-Change-Number: 7003124
        Gerrit-PatchSet: 29
        Gerrit-Owner: Joanmarie Diggs <jdi...@igalia.com>
        Gerrit-Reviewer: David Tseng <dts...@chromium.org>
        Gerrit-Reviewer: Joanmarie Diggs <jdi...@igalia.com>
        Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
        Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
        Gerrit-Reviewer: Yang Guo <yan...@chromium.org>
        Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
        Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
        Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
        Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
        Gerrit-Attention: Mason Freed <mas...@chromium.org>
        Gerrit-Comment-Date: Fri, 17 Oct 2025 11:36:29 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Mason Freed (Gerrit)

        unread,
        Oct 17, 2025, 8:39:33 PM (2 days ago) Oct 17
        to Joanmarie Diggs, Philip Pfaffe, Yang Guo, David Tseng, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, abigailbk...@google.com, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org
        Attention needed from Joanmarie Diggs

        Mason Freed voted and added 1 comment

        Votes added by Mason Freed

        Code-Review+1

        1 comment

        Patchset-level comments
        Mason Freed . resolved

        third_party/blink/renderer/core/BUILD.gn and third_party/blink/renderer/core/html/aria_properties.json5
        LGTM

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Joanmarie Diggs
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I5feeae0da775d2ca6ee5b78c4e51fcf03ef1619c
        Gerrit-Change-Number: 7003124
        Gerrit-PatchSet: 29
        Gerrit-Owner: Joanmarie Diggs <jdi...@igalia.com>
        Gerrit-Reviewer: David Tseng <dts...@chromium.org>
        Gerrit-Reviewer: Joanmarie Diggs <jdi...@igalia.com>
        Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
        Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
        Gerrit-Reviewer: Yang Guo <yan...@chromium.org>
        Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
        Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
        Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
        Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
        Gerrit-Attention: Joanmarie Diggs <jdi...@igalia.com>
        Gerrit-Comment-Date: Sat, 18 Oct 2025 00:39:19 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        open
        diffy

        Joanmarie Diggs (Gerrit)

        unread,
        Oct 18, 2025, 2:38:19 AM (yesterday) Oct 18
        to Mason Freed, Philip Pfaffe, Yang Guo, David Tseng, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, abigailbk...@google.com, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org

        Joanmarie Diggs voted Commit-Queue+2

        Commit-Queue+2
        Open in Gerrit

        Related details

        Attention set is empty
        Gerrit-Comment-Date: Sat, 18 Oct 2025 06:37:55 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        open
        diffy

        Chromium LUCI CQ (Gerrit)

        unread,
        Oct 18, 2025, 4:31:10 AM (yesterday) Oct 18
        to Joanmarie Diggs, Mason Freed, Philip Pfaffe, Yang Guo, David Tseng, Akihiro Ota, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, abigailbk...@google.com, blink-rev...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org

        Chromium LUCI CQ submitted the change

        Change information

        Commit message:
        Update aria_properties.json5, create generated utility functions

        aria_properties.json5 got out of date: roles were missing, details about
        which attributes were supported on a given role were also not current.
        This file should be kept up-to-date.

        In addition, ax_object.cc has hard-coded role and attribute related
        logic that must also be manually kept in alignment with the ARIA spec.

        Rather than having to maintain both the JSON file and the accessibility
        code, make the JSON file the single source of truth for roles and
        attributes and then generate utility functions based on that file which
        can be used in ax_object.cc et al.

        This initial step does not impact production code.

        * Add missing roles and new internalRoles field to aria_properties.json5
        so that we can generate role-related functions.
        * Remove the supportedAttributes field from aria_properties.json5. In
        its place add three optional fields for each attribute: isGlobal,
        supportedOnRoles, and preventedOnRoles.
        * Create make_ax_utilities.py script which is used by the new templates
        and has validation e.g. to ensure that non-global attributes have
        supportedOnRoles, and that global attributes lack supportedOnRoles.
        * Add comprehensive unit test coverage for all roles and attributes,
        both for the functions themselves and to detect incomplete changes
        made to aria_properties.json5.
        Change-Id: I5feeae0da775d2ca6ee5b78c4e51fcf03ef1619c
        Reviewed-by: Philip Pfaffe <pfa...@chromium.org>
        Reviewed-by: Mason Freed <mas...@chromium.org>
        Commit-Queue: Joanmarie Diggs <jdi...@igalia.com>
        Reviewed-by: David Tseng <dts...@chromium.org>
        Cr-Commit-Position: refs/heads/main@{#1531802}
        Files:
        • M third_party/blink/renderer/build/scripts/aria_properties.py
        • A third_party/blink/renderer/build/scripts/make_ax_utilities.py
        • A third_party/blink/renderer/build/scripts/templates/ax_utilities_generated.h.tmpl
        • A third_party/blink/renderer/build/scripts/templates/ax_utilities_generated_attributes.cc.tmpl
        • A third_party/blink/renderer/build/scripts/templates/ax_utilities_generated_naming.cc.tmpl
        • A third_party/blink/renderer/build/scripts/templates/ax_utilities_generated_roles.cc.tmpl
        • M third_party/blink/renderer/core/BUILD.gn
        • A third_party/blink/renderer/core/accessibility/ax_utilities_test.cc
        • M third_party/blink/renderer/core/accessibility/build.gni
        • M third_party/blink/renderer/core/html/aria_properties.json5
        Change size: XL
        Delta: 10 files changed, 3107 insertions(+), 146 deletions(-)
        Branch: refs/heads/main
        Submit Requirements:
        • requirement satisfiedCode-Review: +1 by Philip Pfaffe, +1 by David Tseng, +1 by Mason Freed
        Open in Gerrit
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: merged
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I5feeae0da775d2ca6ee5b78c4e51fcf03ef1619c
        Gerrit-Change-Number: 7003124
        Gerrit-PatchSet: 30
        Gerrit-Owner: Joanmarie Diggs <jdi...@igalia.com>
        Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
        Gerrit-Reviewer: David Tseng <dts...@chromium.org>
        Gerrit-Reviewer: Joanmarie Diggs <jdi...@igalia.com>
        Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
        Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
        Gerrit-Reviewer: Yang Guo <yan...@chromium.org>
        Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
        Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
        open
        diffy
        satisfied_requirement
        Reply all
        Reply to author
        Forward
        0 new messages