| Milestone 1a finding ID | M1a-034 |
|---|---|
| Backlog priority | Medium |
| Severity — carried from Milestone 1a | Moderate |
| Implementation effort | Low |
| Target milestone(s) | MS2a — Design Tokens and Core Components; MS3b — Backend Template Build |
| WCAG 2.2 success criterion | 1.3.1 Info and Relationships; 1.4.3 Contrast (Minimum) |
| Responsibility tag(s) from report | Development, Design |
| Affected Joomla area/component | Joomla Update — “Start update” control — Milestone 1a finding #34 |
| Affected user journey(s) | 12 — Update Joomla |
To start an update, the user must select a confirmation checkbox before the Start update control becomes available.
The Start update control is implemented as a link that only appears disabled. It can still receive keyboard focus and be activated, but nothing happens.
The report notes that disabled controls have an exception from the 4.5:1 text-contrast requirement. Because this control is not actually disabled, that exception does not apply.
The report suggests adding aria-disabled="true" and tabindex="-1" while the control is unavailable, removing both attributes when it becomes available. Alternatively, it suggests setting the link to inert while disabled to prevent all interaction.
Screen-reader and keyboard users may encounter the Start update control and believe it is available because it remains focusable and clickable.
Activating it produces no response, which can be confusing. Users may not realize that they must first select the confirmation checkbox.
The disabled-looking appearance may also make the control difficult to see. Because it is not programmatically disabled, its low contrast cannot be justified by the disabled-control exception.
This can make the update workflow slower and may leave users uncertain why the control does not work.
Make the unavailable state programmatically and visually clear
aria-disabled="true" and tabindex="-1", or by using inert/administrator//administrator/index.php?option=com_joomlaupdate on the same installationhref, aria-disabled value, tabindex, and any disabled or inert attribute6.2
While the update confirmation checkbox is unselected, the Start update control cannot receive keyboard focus or be activated.
Its unavailable state is programmatically conveyed to assistive technology.
When the checkbox is selected, the control becomes focusable, operable, and clearly available.
The Start update control is a link that only looks disabled.
While the confirmation checkbox is unselected, it can still receive keyboard focus and be clicked, but no update starts.
Because it is not genuinely disabled, its low contrast cannot rely on the disabled-control exception.
The current Joomla 6.2 build needs to be checked to establish whether the issue persists.
Desktop web
Chrome, Firefox, Edge, Safari
VoiceOver, JAWS, NVDA
The browser and assistive-technology entries above are carried forward from the original issue and do not represent a new verification of every combination against Joomla 6.2.
Development and Design are the responsibility tags in the original report.
The report's suggested aria-disabled="true" and tabindex="-1" approach is one possible remediation. Using inert is another. Choose and verify the approach that best fits the component and framework.
A control that only looks disabled must still meet the applicable contrast requirement because it remains interactive.
This issue is distinct from #48407. That issue concerns checkbox-boundary contrast; this issue concerns the unavailable state and behaviour of the Start update control.
MS2a is proposed for the shared disabled-control pattern, with MS3b covering the documented Joomla Update integration.
| Labels |
Added:
a11y
a11y-audit-backlog
a11y-priority-moderate (Medium)
|
||
| Labels |
Added:
No Code Attached Yet
|
||
| Title |
|
||||||
| Title |
|
||||||
| Status | New | ⇒ | Closed |
| Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2026-11-09 16:39:44 |
| Closed_By | ⇒ | drmenzelit |
This requires a change in the js
media_source\com_joomlaupdate\js\default.es6.jsinstead of adding/removing a class of disabled on the link it should be adding/removing an attribute of disabled