User tests: Successful: Unsuccessful:
Pull Request resolves #48396 .
Until you check the box the link (looks like a button) to do the update appears to be disabled.
However it isnt actually disabled it just uses bootstrap css class of disabled to make it look disabled and remve the mosue pointer.
You can still navigate to it using the keyboardb etc
Removing a control from the tab order is not always desirable because keyboard users may benefit from knowing that an action exists but is currently unavailable. However, in this case the checkbox immediately precedes the button and explains the requirement, so I think removing it from the tab order while disabled is a reasonable choice.
this is a js change so either use a prebuilt package or npm i
In the Joomla update component set the update url to anything that will make Joomla think there is an update available. (the update link from a PR can be used for this)
After the first page of checks you will see the screen as shown above
Observe that the visibility of the Start Upload button changes when you check the box above it
With the checkbox unchecked observe that you can use the keyboard to navigate to start upload
Visually there is no change - however you can not use the keyboard to navigate to Start Upload until the checkbox is checked
Please select:
Documentation link for guide.joomla.org:
No documentation changes for guide.joomla.org needed
Pull Request link for manual.joomla.org:
No documentation changes for manual.joomla.org needed
| Status | New | ⇒ | Pending |
| Category | ⇒ | JavaScript NPM Change |
I have tested this item ✅ successfully on 0daedcd
The new click listener isn't needed. installButton (.emptystate-btnadd) is the same element, and its existing listener already calls preventDefault() and returns while the box is unchecked.
| Labels |
Added:
a11y
NPM Resource Changed
PR-6.2-dev
|
||
@tecpromotion quite right I have removed that additional redundant listener
I have tested this item ✅ successfully on ae82770
I have tested this item ✅ successfully on ae82770
Something else I’ve just noticed is that when I switch to the admin page and come back, Chrome restores the box as ticked without a change event. I can’t then select it using the keyboard.
@tecpromotion did it worked before the changes in this PR.
When User push "borwser back button" the browser restores previous "view/state", it is tricky. And probably does not run JS again
@tecpromotion did it worked before the changes in this PR?
When User push "borwser back button" the browser restores previous "view/state", it is tricky. And probably does not run JS again
@tecpromotion did it worked before the changes in this PR?
When User pushes "borwser back button" the browser restores previous "view/state", it is tricky. And probably does not run JS again
@tecpromotion did it worked before the changes in this PR? When User pushes "borwser back button" the browser restores previous "view/state", it is tricky. And probably does not run JS again
@Fedik No, not fully. I ran the same flow on 6.2-dev without the PR in Chrome: tick the box, open another admin page, press Back.
| After Back | Without PR | With PR |
|---|---|---|
| Checkbox | checked | checked |
| Link | disabled class (greyed out, pointer-events: none) |
disabled + aria-disabled="true" + tabindex="-1" |
| Mouse click | nothing | nothing |
| Tab + Enter | starts the update | link is skipped |
The page doesn't come from the bfcache here (pageshow with persisted=false), so the JS does run again. But on DOMContentLoaded the box is still unchecked. Chrome restores the checked state afterwards, without a change event. So this bug is older than the PR. Before, the keyboard path still worked by accident. A pageshow listener runs after the restore and fixes both cases:
window.addEventListener('pageshow', updateConfirmButton);I have tested this item ✅ successfully on ae82770
Seen tab reaches "start update" button and afterward not
used patch tester and npm ci
I have tested this item ✅ successfully on ae82770
Seen tab reaches "start update" button and afterward not
used patch tester and npm ci
| Status | Pending | ⇒ | Ready to Commit |
RTC
RTC
| Labels |
Added:
RTC
|
||
| Status | Ready to Commit | ⇒ | Fixed in Code Base |
| Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2026-11-09 16:39:43 |
| Closed_By | ⇒ | drmenzelit |
Thanks
thanks
I have tested this item ✅ successfully on 0daedcd
The new click listener isn't needed.
installButton(.emptystate-btnadd) is the same element, and its existing listener already callspreventDefault()and returns while the box is unchecked.This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/48761.