Loading

Accessibility: Understanding Why Automation Testing Tools Flag a Parent/Child Relationship Error on Salesforce Console Workspace Tabs

Publish Date: Jun 2, 2026
Description

Applies To

  • Salesforce Lightning Console (Aura)
  • navexConsoleTabContainer / workspace tab bar component
  • WCAG 2.x / Accessible Rich Internet Applications (ARIA) accessibility audits

Symptom

When running an automated accessibility scan against a Salesforce Lightning Console page, tools report the following failure:

  • Rule: aria-required-children / WCAG 1.3.1
  • Element: div[aria-label="Workspace tabs for <Console Name>"]

The element with role="tablist" does not contain only allowed required child roles. Non-tab children such as live regions (aria-live), presentation elements, status roles, or buttons are present as direct or descendant children.

Root Cause

The Lightning Console tab bar was built against the ARIA 1.2 specification, which used the language "required owned children" to describe what elements should be children of role="tablist". Under ARIA 1.2, the tab component's additional child elements including live regions, focus management spans, action buttons, and close buttons — were necessary to support the full functionality of the console tab experience (tab reordering, keyboard navigation, tab actions menus, and close controls).

ARIA 1.3 updated this language from "required owned children" to "allowed children", introducing stricter language around what descendants are permitted within a tablist. Automated tools calibrated to ARIA 1.3 semantics will flag elements built to ARIA 1.2 patterns as non-compliant.

Per W3C ARIA Working Group guidance, updates to the ARIA specification from one version to another do not require retroactive updates to components built under prior versions, unless those updates cause measurable adverse user impact. In this case, no adverse user impact has been identified. The tab interface is correctly identified and announced by assistive technologies, and end-user functionality is fully intact.

A related discussion in the ARIA Working Group is available publicly:

Why the Non-Tab Children Exist

The Salesforce Console tab bar requires the following functional elements within or adjacent to the tab structure:

Element

Purpose

<span aria-live="assertive">

Announces tab reorder operations to screen readers

<span class="assistiveText">

Provides keyboard instruction text for tab reordering

<ul role="presentation">

Wraps pinned and standard tab items

<div aria-live="assertive">

Secondary live region for tab state announcements

<span role="status" aria-live="polite">

Polite announcement of tab status changes

<button aria-haspopup>

Tab actions dropdown (e.g., refresh, pin)

<button> (close)

Close tab control

<span role="presentation" tabindex="0">

Focus management for keyboard trap handling

Wrapping these elements inside role="tab" anchors was evaluated and rejected, as doing so introduces other accessibility issues. Adopting an alternative ARIA pattern (e.g.,Navigation) was also evaluated; however, the ARIA Working Group has not yet finalized support for aria-actions, which would be the appropriate long-term mechanism for exposing these controls accessibly.  

SLDS Blueprint Note

The SLDS v2 Accessibility section states that only role="tab" should be a child of tablist. However, the reference blueprint (SLDS v1) does include buttons and other elements as children of tablist. The current implementation reflects the v1 blueprint pattern, which predates the stricter v2 guidance. 

Resolution

Resolution

This finding is not a WCAG conformance violation in the context of the ARIA version under which the component was built. The component functions correctly for end users, including those using assistive technologies.

Additional Resources
Supporting References
  1. WAI-ARIA 1.2 Specification — tablist Role The current W3C Recommendation for Accessible Rich Internet Applications (ARIA) 1.2 defines the tablist role and its required owned elements. This is the published specification under which the Salesforce Lightning Console tab component was built.
  2. WAI-ARIA 1.3 First Public Working Draft The ARIA 1.3 Working Draft introduced updated language around "allowed children" for tablist. This document is still a draft and has not been published as a finalized W3C Recommendation, meaning conformance cannot be evaluated against it.
  3. W3C ARIA GitHub Issue #2322 — tablist Only Supports role=tab as Children An open W3C ARIA Working Group discussion confirming that the limitation of tablist supporting only role="tab" children is a known gap in the spec, particularly for real-world implementations that require action buttons and controls alongside tabs.
  4. W3C ARIA Practices GitHub Issue #2247 — tab Role and Associated Popup Menus An ARIA Working Group discussion directly addressing how tab components should handle associated popup menus and action controls, supporting the rationale that no finalized accessible pattern exists yet for this use case.
  5. WCAG 2.1 Understanding Success Criterion 1.3.1 — Info and Relationships The official W3C guidance for WCAG Success Criterion 1.3.1 (Level A), which requires that information and relationships be programmatically determinable. This resource clarifies that the criterion addresses user impact, not strict ARIA structural conformance in isolation.
Knowledge Article Number

005385907

 
Loading
Salesforce Help | Article