feat: improved accessibility for Show/Hide Accordions#1811
feat: improved accessibility for Show/Hide Accordions#1811filippovskii09 wants to merge 6 commits into
Conversation
|
Thanks for the pull request, @filippovskii09! This repository is currently maintained by Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review. 🔘 Get product approvalIf you haven't already, check this list to see if your contribution needs to go through the product review process.
🔘 Provide contextTo help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:
🔘 Get a green buildIf one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green. DetailsWhere can I find more information?If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources: When can I expect my changes to be merged?Our goal is to get community contributions seen and reviewed as efficiently as possible. However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:
💡 As a result it may take up to several weeks or months to complete a review and merge your PR. |
|
Thanks for the pull request, @filippovskii09! This repository is currently maintained by Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review. 🔘 Get product approvalIf you haven't already, check this list to see if your contribution needs to go through the product review process.
🔘 Provide contextTo help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:
🔘 Get a green buildIf one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green. 🔘 Update the status of your PRYour PR is currently marked as a draft. After completing the steps above, update its status by clicking "Ready for Review", or removing "WIP" from the title, as appropriate. Where can I find more information?If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources: When can I expect my changes to be merged?Our goal is to get community contributions seen and reviewed as efficiently as possible. However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:
💡 As a result it may take up to several weeks or months to complete a review and merge your PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1811 +/- ##
==========================================
+ Coverage 90.84% 90.86% +0.02%
==========================================
Files 345 348 +3
Lines 5800 5814 +14
Branches 1376 1341 -35
==========================================
+ Hits 5269 5283 +14
Misses 514 514
Partials 17 17 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Hi @filippovskii09, thank you for this contribution! Since it's a user-facing change, it will need product approval before it can be merged. Please choose your product contribution type and follow the corresponding instructions to get the product review process started. |
|
Thanks @itsjeyd! This PR is in draft. I plan to create a product proposal. |
There was a problem hiding this comment.
Do we need this tests?
| @import "courseware/course/content-tools/calculator/calculator.scss"; | ||
| @import "courseware/course/content-tools/contentTools.scss"; | ||
| @import "course-home/dates-tab/timeline/Day.scss"; | ||
| @import "generic/upsell-bullets/UpsellBullets.scss"; |
There was a problem hiding this comment.
[important]: We need to verify what do we need to do with UpsellBullets.scss
There was a problem hiding this comment.
was removed, no errors occurred
|
Sandbox deployment successful 🚀 |
|
Sounds good @PKulkoRaccoonGang, thanks for the update. |
|
Sandbox deployment failed 💥 |
|
Sandbox deployment failed 💥 |
|
Sandbox deployment failed 💥 |
|
Sandbox deployment successful 🚀 |
|
Hi @openedx/openedx-product-managers could you please take a look at this PR? Thanks in advance! |
|
@kblemel the sandbox is available at this link https://github.com/openedx/frontend-app-learning/pull/1811/checks?check_run_id=67752564059
|
|
Hi @PKulkoRaccoonGang and @filippovskii09 👋 Since this is supposed to be the first PR to test the new process for a11y fixes, I wanted to check in and see how it's going? It looks like the changes are still waiting on a review and thumbs-up from @kblemel, but perhaps I missed something. Let me know. |
|
Hi @itsjeyd |
|
@PKulkoRaccoonGang I don't, unfortunately. We don't have any a11y experts on the team at OpenCraft. @sarina It looks like we're stuck without an a11y expert to review this PR. Do you have any suggestions on how to proceed? Maybe Axim found someone that has the necessary expertise to review a11y changes since this conversation first started? |
|
Besides Kevin, I also asked Mary Ziegler to take a look at a few PRs, but unfortunately we don’t have any feedback yet. |
|
We're looking into some AI tooling that may help accelerate a11y reviews. We won't be making any progress on this until after the conference, early June probably at the earliest. |
|
That's good to know, thanks for the update @sarina 👍 |
musaabhasan
left a comment
There was a problem hiding this comment.
Thanks for pushing this forward. I left two accessibility-focused notes that are worth checking before this becomes the reference implementation for the accordion improvements. Both are small in code, but they affect the semantics exposed to assistive technologies.
| return ( | ||
| <div | ||
| id="live_tab" | ||
| role="region" |
There was a problem hiding this comment.
Adding role="region" exposes this wrapper as a landmark/region, but it currently has no accessible name. That can add an unnamed region to the screen-reader landmark list. If this should be a navigable region, please add aria-label or aria-labelledby; otherwise I would leave the wrapper without the region role and let the embedded live content carry its own semantics.
| </div> | ||
| <div className="col-7 ml-3 p-0 font-weight-bold text-dark-500"> | ||
| <span className="align-middle col-6">{title}</span> | ||
| <h2 className="h4 text-dark-500 mb-0"> |
There was a problem hiding this comment.
This adds the expected DOM heading, but the title is passed into Paragon Collapsible, which renders it inside Collapsible.Trigger with role="button". In practice that can prevent the h2 from being exposed as a navigable heading, so the DOM test may pass while heading navigation still misses these sections. It would be safer to render the heading outside the trigger/button pattern, or add an accessibility test that queries the full Section by getByRole('heading', { level: 2, name: title }).

Note
This PR has been added to the product proposal to improve accessibility.
Product proposal
Issue
#1876
Description
This PR proposes improvements aimed at enhancing the accessibility of Accordions.
<ol>containing the show/hide sections should have a role of presentation.Testing instructions
<ol>hasrole="presentation"<h2>2025-10-23.11.54.24.mov