Open
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
90251ce to
fb80a65
Compare
c3437a1 to
1f4a4da
Compare
1f4a4da to
b3cbdd5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📌 Summary
If merged, this PR adds a new
HdsCompositecomponent that provides accessible keyboard navigation (roving tabindex) for composite widget patterns such as toolbars, listboxes, and 2D grids. This will be used as a foundational building block for keyboard navigation in theAdvancedTablecomponent.🛠️ Detailed description
The Composite component implements the WAI-ARIA Composite keyboard navigation pattern using a modifier-based API. It yields three modifiers via a contextual hash:
{{c.composite}}- Applied to the container element. Listens for keydown events and manages the composite'stabindexwhen no item is active.{{c.item}}- Applied to each navigable item. Manages rovingtabindex(0for active,1for inactive),data-active-itemattribute, andaria-disabled. Accepts an optionaldisablednamed argument.{{c.group}}- Applied to row/group containers to enable 2D grid navigation.Supported features:
@orientation-"horizontal","vertical", or omitted for both axes. Controls which arrow keys are active.@loop-true(all axes),"horizontal", or"vertical". Wraps focus from last to first (or vice versa) within the axis.@wrap-true,"horizontal", or"vertical". In 2D grids, overflows navigation into adjacent rows/columns.- Pre-selects a specific item or explicitly sets no active item (null`).2D grid navigation
When groups are present and no
@orientationis set, switches to 2D mode withArrowLeft/ArrowRightwithin rows,ArrowUp/ArrowDownacross rows,Home/Endfor row edges,Ctrl+Home/Ctrl+Endfor grid edges, andPageUp/PageDownfor column edges.🔗 External links
Jira ticket: HDS-6131
👀 Component checklist
💬 Please consider using conventional comments when reviewing this PR.
📋 PCI review checklist
Examples of changes to controls include access controls, encryption, logging, etc.
Examples include changes to operating systems, ports, protocols, services, cryptography-related components, PII processing code, etc.