Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
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