-
-
Notifications
You must be signed in to change notification settings - Fork 2
feat: add accessibility settings for fonts and text size #162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Add new Accessibility section in Settings with the following options: - Font selection: Default, OpenDyslexic (for dyslexia), or Arimo - Bold All Text: toggle to make all text bold - Extra Large Text: 125% font size increase Also reorganizes ProfileModal: - Move Delete Account into Account menu with inline confirmation - Separate Accessibility into its own menu section Includes OpenDyslexic font files (OTF format) and flash prevention to avoid layout shift on page load. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Updates to Preview Branch (feature/accessibility-settings) ↗︎
Tasks are run on every commit but only new migration files are pushed.
View logs for this Workflow Run ↗︎. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #162 +/- ##
==========================================
+ Coverage 86.91% 87.01% +0.10%
==========================================
Files 117 119 +2
Lines 14689 14891 +202
Branches 2264 2302 +38
==========================================
+ Hits 12767 12958 +191
- Misses 1922 1933 +11
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
Pull Request ReviewThis is a well-implemented accessibility feature that follows the project's patterns and guidelines. The implementation is solid, but I've identified a few areas for improvement. ✅ StrengthsCode Quality
Design System Compliance
Accessibility Features
|
🔍 Issues & Recommendations1. CSS Specificity Concern -
|
🔒 Security & PerformanceSecurityNo security concerns identified. The implementation:
PerformanceMinimal performance impact:
📊 Test CoverageExcellent test updates:
Missing:
🎯 Final VerdictRecommendation: Approve with minor changes This PR is production-ready with only minor improvements suggested. The core implementation is solid, follows project conventions, and adds meaningful accessibility features. Must Fix Before Merge:
Nice to Have:
Score: 8.5/10 - Well done! 🎉 Reviewed by: Claude Code |
- Exclude code blocks, .mono, and KaTeX elements from font overrides - Add validation for FontFamily values from localStorage - Add useAccessibility.test.tsx with 18 unit tests covering: - Default values - Loading from localStorage - Invalid stored values fallback - Setting values and persistence - CSS class application - localStorage unavailable scenarios - Hook usage outside provider - Reset delete confirmation dialog when navigating away from Account view Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
PR Review - Accessibility Settings FeatureOverviewThis PR adds comprehensive accessibility settings to improve the app's usability for users with dyslexia and visual impairments. The implementation is well-structured with proper testing and follows the project's conventions. ✅ Strengths1. Excellent Architecture
2. Strong Type Safety
3. Comprehensive Testing
4. Accessibility-First Design
5. Performance Considerations
📝 Code Quality ObservationsMinor: CSS SpecificityThe CSS selectors are quite verbose and use html.font-dyslexic body,
html.font-dyslexic p,
html.font-dyslexic span:not(.katex):not(.katex-html):not(.katex *),
/* ... many more selectors */Why this works here: The Potential improvement (future): Consider adding a html.font-dyslexic *:not(.accessibility-exclude):not(pre):not(code):not(.katex *) {
font-family: 'OpenDyslexic', sans-serif !important;
}Minor: localStorage Error HandlingThe localStorage error handling is good, but silent failures could confuse users: try {
localStorage.setItem(STORAGE_KEY_FONT, font);
} catch {
// localStorage may be unavailable
}Suggestion: Consider showing a toast notification when settings fail to persist, so users know their preferences won't survive a refresh. Good: Delete Account UX ImprovementMoving delete account from a separate view to an inline confirmation dialog is a UX improvement. The previous implementation required navigating to a "danger zone" view, which was unnecessarily complex. The new approach with AlertDialog is more standard and less cognitive load. 🔒 Security Review✅ No Security Issues Found
🎯 Best Practices AlignmentFollows CLAUDE.md Conventions:
React/TypeScript Best Practices:
🧪 Test CoverageCoverage is excellent:
Test quality highlights:
🐛 Potential IssuesNone Critical, but worth noting:
📊 Performance ImpactMinimal performance impact:
✨ Recommendations
🎉 SummaryRecommendation: APPROVE ✅ This is a well-implemented accessibility feature with:
The implementation demonstrates attention to detail (flash prevention script, KaTeX exclusions, localStorage validation) and respect for users with accessibility needs. The reorganization of the delete account flow is also a welcome UX improvement. Minor suggestions above are for future consideration, not blockers. Great work! 🚀 |
Summary
Test plan
npm run test:run- all 2921 tests pass🤖 Generated with Claude Code