OCPBUGS-105273: Fix nested interactive controls on Search page - #16914
Conversation
The "Add to navigation" pin toggle button was rendered inside the AccordionToggle, creating a button nested inside a button. This violates WCAG 4.1.2 (nested-interactive) and causes screen reader and keyboard focus issues. Move the pin toggle out of AccordionToggle into AccordionItem as a sibling element, positioned absolutely to maintain the same visual layout. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Pipeline controller notification For optional jobs, comment This repository is configured in: LGTM mode |
|
@rhamilto: This pull request references Jira Issue OCPBUGS-105273, which is invalid:
Comment The bug has been updated to refer to the pull request using the external bug tracker. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
WalkthroughThe resource dropdown now renders the pin toggle as an accordion item sibling. CSS positions the toggle absolutely within the accordion while preserving its visibility, labels, icons, and click behavior. ChangesResource dropdown pin toggle
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 15✅ Passed checks (15 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
/pipeline required |
|
Scheduling tests matching the |
|
/test e2e-playwright |
|
/jira refresh |
|
@rhamilto: This pull request references Jira Issue OCPBUGS-105273, which is valid. The bug has been moved to the POST state. 3 validation(s) were run on this bug
DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
Tests from second stage were triggered manually. Pipeline can be controlled only manually, until HEAD changes. Use command to trigger second stage. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: logonoff, rhamilto, shahsahil264 The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/verified by @rhamilto |
|
@rhamilto: This PR has been marked as verified by DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/retest |
|
@rhamilto: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
|
@rhamilto: Jira Issue Verification Checks: Jira Issue OCPBUGS-105273 Jira Issue OCPBUGS-105273 has been moved to the MODIFIED state and will move to the VERIFIED state when the change is available in an accepted nightly payload. 🕓 DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
Fix included in release 5.0.0-0.nightly-2026-08-07-234136 |
Analysis / Root cause:
The Search page accordion toggle (
co-search__accordion-toggle) renders an "Add to navigation" / "Remove from navigation"<Button>as a child of<AccordionToggle>, which itself renders as a<button>. This creates a<button>nested inside a<button>, violating WCAG 4.1.2 (nested-interactive). Axe flags this as a "serious" accessibility violation — nested interactive controls are not always announced by screen readers and cause focus problems for assistive technologies. Example failure: https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/pr-logs/pull/openshift_console/16741/pull-ci-openshift-console-main-e2e-playwright/2085257705513029632/artifacts/e2e-playwright/test/artifacts/playwright-report/index.html#?q=s%3Afailed&testId=8a1e1e4ea9c5d3c5a917-c26f79b8e02bada30d0eSolution description:
Move the pin toggle
<Button>out of<AccordionToggle>and into<AccordionItem>as a sibling element. Updated SCSS positions it absolutely over the accordion header to maintain the same visual layout.Screenshots / screen recording:
Screen.Recording.2026-08-06.at.9.09.55.AM.mov
Test setup:
None required.
Test cases:
nested-interactiveviolationsresource-crud.spec.tsPlaywright tests (PersistentVolume CRUD lifecycle) and confirm the a11y check passesBrowser conformance:
Additional info:
https://redhat.atlassian.net/browse/OCPBUGS-105273
Reviewers and assignees:
Summary by CodeRabbit