feat: add screen reader & keyboard accessibility support#63
feat: add screen reader & keyboard accessibility support#63reabr wants to merge 9 commits intosartoopjj:mainfrom
Conversation
- Add skip-link and ARIA landmarks to main layout - Implement aria-live region for dynamic announcements - Trap focus inside modals for better SR experience - Update channel list to support keyboard selection - Add :focus-visible and prefers-reduced-motion CSS
|
|
@sartoopjj All review feedback addressed. Ready for re review. |
|
- Route all SR strings through t(): aria labels, announcements, channel suffix now use i18n keys; add sr_* keys to both fa and en locale tables - Move skip-link styles to CSS (.skip-link + :focus rule); remove inline style and JS onfocus/onblur hacks; skip link now visible to keyboard users - Add :focus-visible outline and prefers-reduced-motion media query - Wire remaining modals into a11yModalOpen/Close: savedResolversModal, shareProfileModal, showInputDialog, showInfoDialog - Remove raw message ID from aria label; use message time instead - Rate-limit new message announcements: only announce when user is scrolled up (not already at bottom) to avoid SR spam - Add data-i18n aria attribute support in applyLang()
|
@sartoopjj All review feedback addressed. Ready for re review. |
|
This branch has conflicts that must be resolved |
|
please fix conflicts again |
| @@ -7938,11 +8598,13 @@ <h2 data-i18n="scanner_title">🔍 Resolver Scanner</h2> | |||
| } | |||
|
|
|||
| function openScanner() { | |||
| a11yModalOpen('scannerModal'); | |||
There was a problem hiding this comment.
a11yModalOpen runs before the modal is visible
sepehr-alipour
left a comment
There was a problem hiding this comment.
Great job.
I dropped a couple of comments and suggestions to fix.
|
@sepehr-alipour |
This PR adds foundational accessibility improvements to make thefeed usable by blind and visually impaired users.
Changes
role="application",role="log",aria-live) for screen reader navigationa11yAnnounce()for dynamic announcements (channel switches, new messages, modals)aria labelon icon only buttons for meaningful SR announcements:focus visibleindicators +prefers reduced motionsupportdir="rtl") compatibility preserved for Farsi usersTesting
Impact