[ACS-10280]: Keyboard Navigation: Search: Unnecessary stops in the results table using the Tab key#11736
Conversation
There was a problem hiding this comment.
Pull request overview
This PR targets an accessibility/keyboard-navigation issue in the DataTable used by search results, aiming to reduce unnecessary Tab stops and improve discoverability of hover-only row controls during keyboard interaction.
Changes:
- Removes row-focus configuration (
allowFocusOnRows/setAllowFocusOnTableRows) from theDataTableAdapterAPI and fromShareDataTableAdapter. - Updates the DataTable template to stop passing a
disabledbinding to rows (impacting row focus/tabindex behavior). - Adds a CSS rule to reveal “hover-only” controls when the table has focus within, and removes related unit tests.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| lib/core/src/lib/datatable/data/datatable-adapter.ts | Removes exported adapter members previously used to control row focus behavior. |
| lib/core/src/lib/datatable/components/datatable/datatable.component.html | Stops binding disabled into adf-datatable-row, changing row focusability/tab order. |
| lib/core/src/lib/datatable/components/datatable/datatable.component.scss | Shows hover-only controls when the datatable contains focus (keyboard support). |
| lib/core/src/lib/datatable/components/datatable/datatable.component.spec.ts | Removes tests related to adapter-controlled row focus. |
| lib/content-services/src/lib/document-list/data/share-datatable-adapter.ts | Removes public focus-control property/method from the Share adapter. |
| lib/content-services/src/lib/document-list/data/share-datatable-adapter.spec.ts | Removes unit tests for the deleted Share adapter members. |
Comments suppressed due to low confidence (1)
lib/core/src/lib/datatable/components/datatable/datatable.component.spec.ts:1823
- The PR removes the only tests that asserted row tabbability could be controlled via an adapter, but it doesn’t add/adjust tests to cover the new expected keyboard behavior (Tab stops, ArrowUp/ArrowDown navigation, Shift+Arrow drag&drop). Please add/update accessibility tests to lock in the intended focus order and prevent regressions.
it('should create focus trap on main menu open', () => {
dataTable.showHeader = ShowHeaderMode.Always;
dataTable.showMainDatatableActions = true;
dataTable.mainActionTemplate = columnCustomTemplate;
You can also share your feedback on Copilot code review. Take the survey.
lib/content-services/src/lib/document-list/data/share-datatable-adapter.ts
Show resolved
Hide resolved
lib/content-services/src/lib/document-list/data/share-datatable-adapter.ts
Show resolved
Hide resolved
lib/core/src/lib/datatable/components/datatable/datatable.component.html
Outdated
Show resolved
Hide resolved
lib/core/src/lib/datatable/components/datatable/datatable.component.scss
Outdated
Show resolved
Hide resolved
12e4fe3 to
f3ea935
Compare
lib/core/src/lib/datatable/components/datatable/datatable.component.scss
Outdated
Show resolved
Hide resolved
f3ea935 to
46f9210
Compare
46f9210 to
6ce5770
Compare
6ce5770 to
78d6e87
Compare
|
|
||
| <div | ||
| *ngFor="let col of getVisibleColumns(); let lastColumn = last;" | ||
| *ngFor="let col of getVisibleColumns(); let lastColumn = last" |
There was a problem hiding this comment.
can this be converted to @for angular flow syntax?
There was a problem hiding this comment.
Done, I've refactored the whole file with new control flow syntax
|



Please check if the PR fulfills these requirements
What kind of change does this PR introduce? (check one with "x")
What is the current behaviour? (You can also link to an open issue here)
https://hyland.atlassian.net/browse/ACS-10280
What is the new behaviour?
Does this PR introduce a breaking change? (check one with "x")
!!!this PR removes decorative icon/image cells from
adf-datatable's accessibility tree. That change breaks
on the hxp project where empty cell is expected and reserved for icon/Image cell.
suggested fix:
