adobe / adobe/spectrum-web-components
[Bug]: SWC Link Component Not Keyboard Navigable in Safari
- Dominant language
- TypeScript
- Stars
- 1.5k
- Forks
- 262
- Avg merge
- 3d 10h
- Merged PRs (30d)
- 68
Description
### Code of conduct
- [x] I agree to follow this project's code of conduct.
### Impacted component(s)
Link
### Expected behavior
Links should be focusable and keyboard accessible in all browsers
### Actual behavior
Links are skipped in tab order and cannot be activated with keyboard
### Environment
- Browser: Safari (desktop and iOS)
- OS: macOS, iOS
- SWC Version: Latest
- External Keyboard: Required for iOS testing
### Additional Context
- This issue specifically affects Safari/WebKit browsers
- Chrome, Firefox, and Edge work correctly
- The issue is more pronounced on iOS Safari with external keyboards
- Native HTML elements work fine in the same environment
### Screenshots
_No response_
### What browsers are you seeing the problem in?
Safari
### How can we reproduce this issue?
1. Open Safari (desktop or iOS)
2. Navigate to a page with SWC Link components (e.g., https://opensource.adobe.com/spectrum-web-components/components/link/)
3. Connect an external keyboard (if testing on iOS)
4. Try to use Tab/Shift+Tab to navigate through the links
5. Try to use Enter or Space to activate the links
### Sample code or abstract reproduction which illustrates the problem
_No response_
### Severity
None
### Logs taken while reproducing problem
_No response_
### Would you like to track this issue in Jira?
- [ ] Yes, please tell me the ticket number!
Contributor guide
Research direction
Start by reproducing the issue on the SWC Link component page in Safari, including iOS Safari with an external keyboard, then inspect the Link implementation and its existing tests. Done means Link components enter the tab order and activate with Enter or Space in Safari while preserving the behavior reported for Chrome, Firefox, and Edge.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- accessibility, frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100