Harden accessibility: ARIA roles, semantic buttons, alt text, form labels

- Replace clickable divs with semantic <button> elements (NoteCard, SearchView)
- Add role="dialog", aria-modal, aria-labelledby on all modals (Login, Quote, Zap, Lightbox)
- Add role="presentation" on overlay backdrops (NoteCard menu, emoji pickers)
- Add aria-label to all icon-only buttons (close, nav arrows, context menu)
- Add aria-expanded to context menu toggle
- Add meaningful alt text to all 35+ images (avatars, covers, thumbnails, media)
- Add aria-label to form inputs (search, onboarding login)
This commit is contained in:
Jure
2026-04-02 17:01:02 +02:00
parent f1781691c5
commit 1fd613425d
27 changed files with 75 additions and 54 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ function Avatar({ account, size = "w-6 h-6", textSize = "text-[10px]" }: { accou
return (
<img
src={account.picture}
alt=""
alt={`${account.name || "Account"} avatar`}
className={`${size} rounded-sm object-cover shrink-0`}
onError={(e) => {
(e.target as HTMLImageElement).style.display = "none";