No Code Attached Yet a11y a11y-audit-backlog a11y-priority-critical (Immediate) Design-System
avatar mbeganyi-a11y
mbeganyi-a11y
8 Sep 2026

Steps to reproduce the issue

Milestone 1a finding ID M1a-031
Backlog priority Immediate
Severity — carried from Milestone 1a Critical
Implementation effort Medium
Target milestone(s) MS3b — Backend Template Build; coordinate catalogue implementation ownership
WCAG 2.2 success criterion 2.1.1 Keyboard
Responsibility tag(s) from report Development
Affected Joomla area/component Extensions — Install from Web — extension entries in grid and list views — Milestone 1a finding #31
Affected user journey(s) 07 — Installer Wizard (com_installer/Install)

Install from Web grid and list views with keyboard-order markers reaching external ratings links but skipping extension-details actions

Audit finding

Extension entries in the Install from Web catalogue respond to pointer clicks but do not provide an equivalent keyboard-operable action for opening extension details.

The audit reports this behaviour in both grid and list views. The entries use clickable <div> elements, while keyboard navigation reaches the external ratings links but skips the main action that opens an extension's details.

This prevents users from continuing through the normal Install from Web workflow using the keyboard alone.

The finding does not concern the installed-extension list under System → Manage → Extensions.

User impact

Keyboard-only users cannot open an extension's details from its catalogue entry, even though a pointer user can open the same entry.

They can encounter the ratings link and leave for an external page, but cannot reliably reach the extension information and installation entry point within Joomla.

People using keyboard-based assistive technology face the same missing action. The obstacle occurs before installation confirmation, so improving the later confirmation controls alone does not restore access to the complete workflow.

This finding concerns access through Install from Web and does not establish that every other extension-installation method is unavailable.

Remediation plan

Provide a native keyboard-operable action for opening each extension's details in both catalogue layouts

  • Use a link with a valid destination when opening details is navigation
  • Use a button when opening details is an in-page action
  • Give the action an accessible name containing the extension's name
  • Make the action reachable through the normal keyboard-navigation sequence
  • Support the expected native activation keys for the chosen control
  • Provide a visible keyboard-focus indicator
  • Keep pointer activation working through the same underlying action
  • Avoid relying only on a click handler attached to a generic container
  • Do not treat adding tabindex alone as a complete solution
  • Keep the external ratings link separate from the extension-details action
  • Avoid placing links or buttons inside another interactive element when making the card operable
  • Prioritize the extension name and details action in the reading and focus order
  • Apply the corrected markup and interaction to both grid and list views, including entries loaded after searching, filtering, or pagination
  • Verify the implementation source and coordinate changes with the Install from Web server repository where appropriate

Preconditions

  • Use Joomla 6.2 with the Atum administrator template
  • Sign in with an account permitted to access extension installation
  • Ensure that Install from Web is enabled and can retrieve catalogue results
  • Record the exact Joomla build or commit, browser name and version, and operating system
  • Record the date of testing because remotely supplied catalogue content may change independently of the Joomla build
  • Choose an extension entry that opens details when activated with a pointer
  • Do not confirm or perform an extension installation during this test

Steps to reproduce — locate the affected catalogue

  1. Open the Joomla administrator interface at the site's base URL followed by /administrator/
  2. Open System → Install → Extensions
    • Record the navigation labels if they differ in the tested build
  3. Open the Install from Web tab
  4. Wait for extension results to load
  5. Confirm that the page shows available extensions from the catalogue
    • Do not use System → Manage → Extensions, which lists installed extensions
  6. Record the visible title of a test extension
  7. Activate its main card, title, or details area with a pointer
  8. Confirm that the extension's details open
  9. Record the action and destination or panel shown
  10. Return to the catalogue without activating an installation action

Steps to reproduce — grid view

  1. Select grid view if it is not already active
  2. Move the pointer away from the extension entries
  3. Use Tab to navigate from the catalogue controls into the results
  4. Record each focusable action associated with the test extension
  5. Check whether an action for opening that extension's details receives focus
  6. Record whether keyboard navigation reaches only an external ratings link while skipping the details action
  7. Use Shift+Tab to check the same area in reverse
  8. If a details action receives focus, activate it using the key appropriate to its role
    • Use Enter for a link
    • Use Enter or Space for a button
  9. Compare the result with the pointer action established earlier
  10. Record whether the same extension details can be opened without using the pointer
  11. If details open, return to the catalogue without installing the extension

Steps to reproduce — list view

  1. Switch to list view
    • If the view switch itself is not keyboard operable, record that separately and use the pointer only to establish this test layout
  2. Return to keyboard-only navigation
  3. Navigate through the test extension's row
  4. Check whether its title or another clearly identified action can receive focus and open its details
  5. Record which links or controls are reachable
  6. Compare the keyboard result with opening the same row using a pointer
  7. Repeat with another extension to distinguish a general entry pattern from an isolated content problem

Supplementary implementation check

  1. Inspect the element responsible for opening extension details
  2. Record its element type, role, accessible name, and keyboard-focus behaviour
  3. Check whether the clickable container is a generic <div> without an equivalent interactive child
  4. Identify any pointer-only event handler used for the details action
  5. Inspect the ratings link separately so that it is not mistaken for the details action
  6. Record whether the affected markup is generated locally or supplied through the Install from Web service
  7. Repeat the keyboard check after changing the search, category, or results page where those controls are available
    • Check whether newly loaded entries preserve the same operable action

Supplementary screen reader test

  1. Enable a screen reader and record the screen reader and browser combination
  2. Navigate to an extension entry in grid view
  3. Check whether the extension-details action is exposed as a named link or button
  4. Attempt to activate it through the screen reader's supported interaction
  5. Record whether the available action opens details or only an external ratings page
  6. Repeat in list view
  7. Do not activate the final installation action

Version

6.2

Expected result

Each extension entry provides a keyboard-reachable, clearly named action that opens the same details available through pointer interaction.

The action works in both grid and list views and remains available when catalogue results are refreshed.

External ratings links remain separately identifiable and operable.

Actual result

The audit reports that extension entries use clickable generic containers and cannot be opened with the keyboard in either grid or list view.

Keyboard navigation skips the main extension-details action and reaches the external ratings links instead.

Users therefore cannot continue into the normal Install from Web details and installation workflow through those entries using the keyboard alone.

What device were you using? (eg, phone, laptop)

Desktop web

What web browser were you using? (eg, Chrome, Safari)

Chrome, Firefox, Edge, Safari

Assistive Technology?

N/A

Additional Comments

The browser entries above are carried forward from the original issue and do not represent a new verification of every browser against Joomla 6.2.

The supplementary screen reader test is proposed verification, not a claim that a screen reader was used in the original test.

The issue discussion clarifies that the affected interface is Install from Web rather than the installed-extension management list.

A contributor identifies the Install from Web server repository as a likely implementation location: https://github.com/joomla/install-from-web-server

Confirm the source of the affected markup before deciding which repository needs the change. A template-only focus-style adjustment will not resolve a missing keyboard action.

Issue #48415 separately covers motion and focus handling after opening installation confirmation. Reaching that later step is not required to reproduce the catalogue-entry barrier described here.

MS3b is proposed for administrator integration. Catalogue-service implementation ownership and its delivery assignment require confirmation rather than adding unrelated programme milestones.

avatar mbeganyi-a11y mbeganyi-a11y - open - 8 Sep 2026
avatar mbeganyi-a11y mbeganyi-a11y - change - 8 Sep 2026
Labels Added: a11y a11y-audit-backlog a11y-priority-critical (Immediate)
avatar mbeganyi-a11y mbeganyi-a11y - labeled - 8 Sep 2026
avatar mbeganyi-a11y mbeganyi-a11y - change - 8 Sep 2026
Labels Added: No Code Attached Yet
avatar mbeganyi-a11y mbeganyi-a11y - labeled - 8 Sep 2026
avatar mbeganyi-a11y mbeganyi-a11y - labeled - 8 Sep 2026
avatar joomla-cms-bot joomla-cms-bot - labeled - 8 Sep 2026
avatar mbeganyi-a11y mbeganyi-a11y - change - 8 Sep 2026
The description was changed
avatar mbeganyi-a11y mbeganyi-a11y - edited - 8 Sep 2026
avatar mbeganyi-a11y mbeganyi-a11y - change - 9 Sep 2026
Title
…
The list of extensions is not keyboard operable
Atum Extensions: The list of extensions is not keyboard operable
avatar mbeganyi-a11y mbeganyi-a11y - edited - 9 Sep 2026
avatar mbeganyi-a11y mbeganyi-a11y - change - 9 Sep 2026
The description was changed
avatar mbeganyi-a11y mbeganyi-a11y - edited - 9 Sep 2026
avatar brianteeman
brianteeman - comment - 22 Oct 2026

For anyone looking at this it is NOT the list of joomla extensions as found from the System->Manage->Extensions - it is referring to the Install from Web view and will probably need to be resolved at https://github.com/joomla/install-from-web-server

avatar mbeganyi-a11y mbeganyi-a11y - change - 22 Oct 2026
The description was changed
avatar mbeganyi-a11y mbeganyi-a11y - edited - 22 Oct 2026
avatar mbeganyi-a11y mbeganyi-a11y - change - 26 Oct 2026
The description was changed
avatar mbeganyi-a11y mbeganyi-a11y - edited - 26 Oct 2026
avatar Raheem54
Raheem54 - comment - 27 Oct 2026

I have resolved it there in a pr check it out

avatar Raheem54
Raheem54 - comment - 27 Oct 2026

I have resolved it there in a pr check it out, please

avatar Raheem54
Raheem54 - comment - 27 Oct 2026

I have resolved it there in a PR #3 please someone check it out @brianteeman

avatar Raheem54
Raheem54 - comment - 27 Oct 2026

I have resolved it there in a PR #86 (in the install from web repo) please someone check it out @brianteeman

avatar Raheem54
Raheem54 - comment - 27 Oct 2026

I have resolved it there in a PR joomla/install-from-web please someone check it out @brianteeman

avatar Raheem54
Raheem54 - comment - 27 Oct 2026

I have resolved it there in a PR 86 please someone check it out @brianteeman

avatar rdeutz rdeutz - change - 4 Nov 2026
Labels Added: Design-System
avatar rdeutz rdeutz - labeled - 4 Nov 2026

Add a Comment

Login with GitHub to post a comment