Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .jules/palette.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 2024-04-27 - Icon-only buttons lacking ARIA labels
**Learning:** Found multiple instances where icon-only buttons (like those using `×` to denote close actions) were missing `aria-label` attributes in `src/app/page.tsx` for modals like Privacy Policy, Terms of Service, and Report Issue. This makes them inaccessible to screen readers as the entity `×` provides no semantic meaning.
**Action:** Always verify that interactive elements, especially those lacking visible descriptive text, include appropriate `aria-label` or `aria-labelledby` attributes to ensure screen reader accessibility.
6 changes: 3 additions & 3 deletions src/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ export default function LandingPage() {
<span className="animate-bounce inline-block">↓</span> Scroll to read all sections
</p>
</div>
<button onClick={() => setShowPrivacy(false)} className="text-wiki-text-muted hover:text-wiki-text text-2xl leading-none">&times;</button>
<button onClick={() => setShowPrivacy(false)} className="text-wiki-text-muted hover:text-wiki-text text-2xl leading-none" aria-label="Close">&times;</button>
</div>
<div className="p-4 text-sm space-y-4 pb-12 overflow-y-auto flex-1" style={{ scrollbarWidth: 'auto', scrollbarColor: '#aaa #f0f0f0' }}>
<p><b>Last updated:</b> January 2025</p>
Expand Down Expand Up @@ -502,7 +502,7 @@ export default function LandingPage() {
<span className="animate-bounce inline-block">↓</span> Scroll to read all sections
</p>
</div>
<button onClick={() => setShowTerms(false)} className="text-wiki-text-muted hover:text-wiki-text text-2xl leading-none">&times;</button>
<button onClick={() => setShowTerms(false)} className="text-wiki-text-muted hover:text-wiki-text text-2xl leading-none" aria-label="Close">&times;</button>
</div>
<div className="p-4 text-sm space-y-4 pb-12 overflow-y-auto flex-1" style={{ scrollbarWidth: 'auto', scrollbarColor: '#aaa #f0f0f0' }}>
<p><b>Last updated:</b> January 2025</p>
Expand Down Expand Up @@ -569,7 +569,7 @@ export default function LandingPage() {
<h2 className="text-xl font-bold">Report an Issue</h2>
<p className="text-xs text-wiki-text-muted">Help us improve OpenCitation</p>
</div>
<button onClick={closeReportModal} className="text-wiki-text-muted hover:text-wiki-text text-2xl leading-none">&times;</button>
<button onClick={closeReportModal} className="text-wiki-text-muted hover:text-wiki-text text-2xl leading-none" aria-label="Close">&times;</button>
</div>
<div className="p-4 overflow-y-auto flex-1" style={{ scrollbarWidth: 'auto', scrollbarColor: '#aaa #f0f0f0' }}>
{/* Choice Screen */}
Expand Down
Loading