← Chrome 151 reference

v151 · html · accessibility · shipped

aria-actions

Limited availability

  • Chrome · enabled by default 151 (Windows, macOS, Linux only)
  • Edge · not separately reported
  • Firefox · shipped 146 (UIA mappings 148)
  • Safari · prototype (behind a flag)

Not on the Baseline register — no web-features entry yet (web-platform-dx/web-features #4108 is filed) and webstatus.dev returns no match (queried 2026-07-28). In Chrome the feature is enabled by default on Windows, macOS, and Linux from Chrome 151; it is not implemented on ChromeOS or Android (including Android WebView) per the M151 launch intent and the runtime flag record.

The aria-actions attribute identifies a related element or elements whose primary activation (a click event) triggers a behavior or operation relevant to the referencing user-interface object — such as the close button on a tab, or the reply button for a message. It lets assistive technologies surface these secondary actions directly, solving a common discovery pain point in composite widgets.

Limited platform availability — spec in flight Chrome 151 ships aria-actions on Windows, macOS, and Linux only — not ChromeOS, Android, or WebView: the AriaActions flag record lists only Win/Mac/Linux, and omitting the Android key disables the feature on both Android surfaces (flag comment, per the M151 Intent to Ship). The governing specification change, w3c/aria PR #1805, is open, not merged (verified 2026-07-28) — attribute grammar and platform mappings may shift in review. Feature-detect before use.

at a glance

Shipped inChrome 151 (Enabled by default) on Windows, macOS, and Linux — the milestone listing is authoritative (verified 2026-07-28). Not implemented on ChromeOS or Android/WebView at launch
Attributearia-actions — global ARIA property; value is an ID reference list
IDL reflectionariaActionsElements (FrozenArray<Element>?) on Element and ElementInternals →
Spec statusw3c/aria PR #1805OPEN (not yet merged into the ARIA Editor's Draft); the normative text quoted here is from the PR preview build (ARIA preview, core-aam preview). The ChromeStatus entry records that the ARIA WG has largely accepted it with a single issue under discussion
Runtime flagAriaActions in runtime_enabled_features.json5: status: {"Win": "stable", "Mac": "stable", "Linux": "stable"} — the comment states it is not yet implemented on ChromeOS or Android per the M151 intent
IntentsIntent to Prototype · Intent to Ship
ChromeStatus5161589307867136 — aria-actions (feature detail records status text “In development”, desktop 151; the listing files it Enabled by default)
BugChromium issue 514751946
Source: chromestatus.com/feature/5161589307867136; ChromeStatus API record; runtime_enabled_features.json5

why it exists

Many common UI patterns involve secondary actions — the close button on a tab, reply/forward/delete buttons on an email row, a mute button on a video call tile. Assistive-technology discovery of these related actions is a common pain point: when a screen-reader user focuses the tab, they are not made aware of its close button at all. aria-actions lets the composite element reference the action elements directly so the AT can announce and activate them. The ChromeStatus entry notes FluentUI is ready to adopt the feature once available, and Firefox shipped it (in Firefox 146, UIA mappings in 148) with a positive standards position: the functionality has long been available to native mobile and desktop applications.

Source: ChromeStatus motivation; w3c/aria PR #1805; mozilla/standards-positions #1422

syntax

The attribute takes a space-separated ID reference list — the ids of one or more elements whose activation performs an action relevant to the current element:

<div role="tab" aria-actions="close-button-id">Quarterly report</div>
<button id="close-button-id" aria-label="Close tab">×</button>

Formal characteristics (from the ARIA PR #1805 preview):

ValueID reference list
Used in rolesAll elements of the base markup except: caption, code, definition, deletion, emphasis, generic, insertion, mark, paragraph, strong, subscript, suggestion, superscript, term, time
Related IDLariaActionsElements on Element and ElementInternals — see the IDL member reference
Source: ARIA PR #1805 preview — aria-actions property definition

author requirements

The ARIA PR text places exact obligations on authors and user agents:

Accessible-name interaction (per the WPT accessible-name tests): the referencing element's own accessible name excludes the referenced action target's content, and the target's own accessible name is computed normally (e.g. its aria-label wins over its text content) — that target name is what the AT surfaces as the action label, so it must stay stable.

Source: ARIA PR #1805 preview; WPT wai-aria/aria-actions tests

platform accessibility API mappings

The core-aam section of the PR defines how the attribute maps to each platform accessibility API. Referenced targets that are not exposed in the accessibility tree are not added as actions, but the presence signal (has-actions:true) is still always exposed when the attribute is set:

APIMapping
MSAA + IAccessible2IAccessibleAction interface: one action per referenced accessible node; nActions = number of referenced nodes in the tree; action name = target's DOM id prefixed "custom_" (or "custom" if no DOM id); localizedName = target's accessible name; doAction behaves as if doAction(0) on the target node. Object attribute has-actions:true always exposed when the attribute is set
UIACustom property AccessibleActions (GUID {8C787AC3-0405-4C94-AC09-7A56A173F7EF}, type UIAutomationType_ElementArray) — element array of accessible nodes matching the IDREFs; plus AriaProperties.hasactions: true always exposed when the attribute is set
ATK / AT-SPIAtkAction interface: get_n_actions adds the referenced-node count; get_name returns the target's DOM id prefixed "custom_" (or "custom"); get_localized_name returns the target's accessible name; do_action behaves as if do_action(0) on the target. Object attribute has-actions:true always exposed
AX API (macOS)Implement as a custom action

Concrete result for the tab example in examples: focusing the tab's accessible node reports one available action whose localized name is the button's accessible name:

// IAccessible2 / ATK view of the tab accessible:
nActions        = nActions + 1   // one referenced, tree-exposed target
name            = "custom_close-tab-1"  // DOM id, custom_ prefix
localizedName   = "Close tab"           // target's accessible name
doAction(i)     -> behaves as doAction(0) on the close button
has-actions     = true           // exposed even if target leaves the tree
Source: core-aam PR #1805 preview — aria-actions mapping table

examples

A tab strip where each tab exposes its close button as an action. The AT can announce “Quarterly report” with an available “Close tab” action, and activate it without the user hunting for the button:

<div role="tablist" aria-label="Open documents">
  <div role="tab" tabindex="0" aria-selected="true"
       aria-actions="close-tab-1">
    Quarterly report
    <button id="close-tab-1" aria-label="Close tab">×</button>
  </div>
</div>

<script>
  // The action element responds to click — activation via AT
  // dispatches the same click as pointer activation.
  document.getElementById('close-tab-1')
    .addEventListener('click', (e) => {
      e.stopPropagation();
      closeTab(e.currentTarget.closest('[role="tab"]'));
    });
</script>

Multiple actions use a space-separated list — an email row referencing reply, forward, and delete buttons: aria-actions="reply-btn forward-btn delete-btn". Set the references from script with the ariaActionsElements IDL reflection: tab.ariaActionsElements = [closeButton].

Live example from the Chrome Platform Showcase (action-card-grid concept; also tree-view-actions). Source: chrome-platform-showcase (both routes HEAD-checked 200, 2026-07-28)

browser compatibility

No BCD entry exists yet for aria-actions/ariaActionsElements (checked api/Element, api/ElementInternals, and api/_mixins/ARIAMixin paths, 2026-07-28) — this interim table is built from the linked vendor sources and is labelled as such:

BrowserSupportEvidence
Chrome151+ on Windows, macOS, Linux (enabled by default); not implemented on ChromeOS or Android/WebViewmilestone listing · flag record
EdgeNot separately reported
Firefox146+; UIA mappings 148+jcsteh, mozilla/standards-positions #1422 · Bugzilla meta 1992029
SafariPrototype (behind a flag)WebKit/standards-positions #686 · WebKit bug 306476
Source: ChromeStatus vendor positions; linked bugs and position threads above

security and privacy

The attribute is a discovery-only accessibility bridge: it exposes to assistive technologies references between elements that already exist in the DOM, and its accessible-name behavior reuses names authors already publish (the WPT tests pin that the target's own name stays stable and is excluded from the host's name). It introduces no new script-observable capability, no storage, and no cross-origin surface; activation of a referenced action dispatches the same click the element already responds to. The ChromeStatus entry describes it as a small, discovery-only accessibility feature.

specifications

SpecificationStatus
WAI-ARIA — aria-actions (PR #1805)Open PR; largely accepted by the ARIA WG per the ChromeStatus TAG-review note, one issue under discussion
Core Accessibility API Mappings — aria-actions mappings (PR #1805 preview)Same open PR

No TAG review; the ChromeStatus entry records the reasons: the ARIA specification work is largely accepted, Firefox has already shipped, Safari implements behind a flag, and the feature is a small discovery-only accessibility addition.

see also