No Code Attached Yet a11y
avatar bcordis
bcordis
27 Jul 2026

Steps to reproduce the issue

  1. Create a form with a subform field using layout="joomla.form.field.subform.repeatable-table", where a subform field (or fieldset, with groupByFieldset) carries a description.
  2. Open the form in the administrator and inspect a column header of the repeatable table, or run an axe-core scan over it.

Expected result

The decorative tooltip icon is not keyboard-focusable, and the help text is exposed to assistive technology — e.g. the <th> references the existing role="tooltip" element via aria-describedby.

Actual result

layouts/joomla/form/field/subform/repeatable-table.php emits, in both branches (around lines 55 and 69):

<span class="icon-info-circle" aria-hidden="true" tabindex="0"></span>
<div role="tooltip" id="tip-…">Help text</div>

The span is hidden from assistive technology and keyboard-focusable at the same time. axe-core reports it as aria-hidden-focus (serious, WCAG 2.x SC 4.1.2). Two consequences:

  • a keyboard user tabs onto an element a screen reader will not announce
  • the tooltip is never programmatically associated with the column it describes, so the help text is unreachable by assistive technology either way

System information

Verified present, on disk, in all of: Joomla 5.4.7, 6.1.2, 6.2.0 and 7.0.0. Isolated to repeatable-table.php — the default, repeatable and repeatable-grid subform layouts do not emit it (though those layouts do not render field descriptions at all, so switching layouts loses the help text rather than fixing the exposure).

Additional comments

Suggested fix: drop tabindex="0" from the icon — it is decorative and correctly aria-hidden — and associate the existing role="tooltip" element with its <th> via aria-describedby. That keeps the help text reachable without making a hidden element focusable.

Prior art: #26614 ("[4.0] Subfields - refactor for accessibility etc") removed useless tabindex attributes in this area; this instance survived or was reintroduced.

Found while adding automated WCAG 2.2 AA scanning to a third-party component (context); we currently repair it at runtime with a small script that removes the tabindex and wires up aria-describedby, and would be glad to retire that shim.

avatar bcordis bcordis - open - 27 Jul 2026
avatar joomla-cms-bot joomla-cms-bot - change - 27 Jul 2026
Labels Added: No Code Attached Yet
avatar joomla-cms-bot joomla-cms-bot - labeled - 27 Jul 2026
avatar QuyTon QuyTon - change - 27 Jul 2026
Labels Added: a11y
avatar QuyTon QuyTon - labeled - 27 Jul 2026

Add a Comment

Login with GitHub to post a comment