This pull request significantly expands and clarifies the documentation for the al-folio Jekyll theme, focusing on improved file structure explanations, enhanced quick reference guides, and the addition of a comprehensive analytics setup guide. The changes make it easier for users and contributors to understand the project organization, available features, and configuration options, especially regarding CV formats, teaching pages, and analytics integration. **Key documentation and structure improvements:** *Expanded file and collection structure:* - The file structure documentation in `.github/agents/customize.agent.md` and `.github/agents/docs.agent.md` now details all major directories, including new and existing collections such as `_books/`, `_teachings/`, `_scripts/`, `_plugins/`, and expanded `assets/` subdirectories. It also covers new configuration and utility files, making it easier for users to locate and understand the purpose of each file or folder. [[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L24-R66) [[2]](diffhunk://#diff-961a46180ce568ce43c20bf7129dc5e4926a9aa4e0d7bc19926ca5ee3ff95cd0L17-R58) *Documentation and quick reference enhancements:* - The quick reference table in `.github/agents/customize.agent.md` has been updated to include new actions like adding teaching pages, setting up analytics, improving SEO, and ensuring accessibility, with more precise documentation links. - The documentation map now lists all major guides (e.g., `QUICKSTART.md`, `INSTALL.md`, `TROUBLESHOOTING.md`, `ACCESSIBILITY.md`, `ANALYTICS.md`, `SEO.md`), providing a clearer overview of available resources. [[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L58-R110) [[2]](diffhunk://#diff-961a46180ce568ce43c20bf7129dc5e4926a9aa4e0d7bc19926ca5ee3ff95cd0L17-R58) **Feature and configuration documentation updates:** *CV/resume format guidance:* - The CV documentation now clarifies that users can maintain both RenderCV and JSONResume formats simultaneously, with clear instructions on switching between them and deleting unused files if desired. [[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L139-R185) [[2]](diffhunk://#diff-52f2a9488bfe4177d1f1d01120859dad0b3e2d087283ded68f72d47b4f183391L291-R291) *Teaching pages and new collections:* - Adds documentation for the new `_teachings/` collection, including required frontmatter and support for course materials, as well as updates to enable/disable teaching and books pages via `_config.yml`. [[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L180-R252) [[2]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L24-R66) *Analytics integration:* - Introduces a new `ANALYTICS.md` guide with detailed setup instructions for Google Analytics, privacy-friendly alternatives (Plausible, Pirsch, Openpanel, GoAccess), GDPR considerations, and a comparison table to help users choose the right analytics provider. - The configuration documentation now references analytics setup and related configuration options. [[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L180-R252) [[2]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L479-R550) These updates collectively make the documentation more comprehensive, actionable, and user-friendly for both new and advanced users. **References:** [[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L24-R66) [[2]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L58-R110) [[3]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L139-R185) [[4]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L180-R252) [[5]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L479-R550) [[6]](diffhunk://#diff-961a46180ce568ce43c20bf7129dc5e4926a9aa4e0d7bc19926ca5ee3ff95cd0L17-R58) [[7]](diffhunk://#diff-0967e840631a541bb95e057e1c6d4884274cf56d5a217d7fee2eb7223b6b4c0dR1-R268) [[8]](diffhunk://#diff-52f2a9488bfe4177d1f1d01120859dad0b3e2d087283ded68f72d47b4f183391L291-R291) --------- Signed-off-by: George Araújo <george.gcac@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
11 KiB
Accessibility Guide
This guide helps you ensure your al-folio website is accessible to all visitors, including people with disabilities.
- Accessibility Guide
Overview
Accessibility means ensuring your website works for everyone, regardless of ability. This includes:
- Visual impairments – Screen reader users, low vision
- Hearing impairments – Captions for video, transcripts for audio
- Motor impairments – Keyboard navigation, large buttons
- Cognitive impairments – Clear language, simple navigation
- Other – Slow connections, old devices, non-native speakers
Why Accessibility Matters
- Ethical: Making your research accessible to everyone
- Legal: Some jurisdictions require web accessibility (ADA in US, AODA in Canada, WCAG in EU)
- SEO: Accessible sites rank better in search engines
- Usability: Accessible sites are easier for everyone to use
- Academic integrity: More people can read and build on your research
Built-in Accessibility
al-folio includes several accessibility features out of the box:
- ✅ Semantic HTML – Proper heading structure, landmarks
- ✅ Responsive design – Works on phones, tablets, desktops
- ✅ Color contrast – Meets WCAG AA standards
- ✅ Keyboard navigation – Navigate without a mouse
- ✅ Screen reader support – Works with NVDA, JAWS, VoiceOver
- ✅ Dark mode – Reduces eye strain for some users
- ✅ Focus indicators – Clear focus states for keyboard users
Accessibility Checking
Run Automated Tests Locally
al-folio includes axe (automated testing) to check for accessibility issues.
Using GitHub Actions (easiest):
- Push changes to your repository
- Go to Actions tab
- Look for the "Axe - a11y tests" workflow
- Click on the completed run to see results
- Expand any failures to see details and fixes
Running locally:
# Check a specific file
axe _pages/about.md
# Or use the GitHub Actions workflow
# Results are posted as a comment on pull requests
Interpreting results:
- 🔴 Critical – Must fix (breaks functionality)
- 🟠 Serious – Should fix (impacts many users)
- 🟡 Moderate – Nice to fix (affects some users)
- 🔵 Minor – Polish (edge cases)
Manual Testing
Automated tools catch ~30% of issues. Manual testing catches the rest.
Test keyboard navigation:
- Hide your mouse/trackpad
- Use Tab to navigate through all interactive elements
- Use Enter or Space to activate buttons/links
- Use arrow keys for dropdown menus
- Ensure you can access all features
Test with a screen reader:
Windows:
- Use built-in Narrator:
Windows + Ctrl + N
Mac:
- Use built-in VoiceOver:
Cmd + F5
Linux:
- Use NVDA (free download): https://www.nvaccess.org/
Checklist:
- All page content is readable
- Links are descriptive (screen reader reads link text)
- Images have alt text
- Headings make sense when read aloud
- Form fields have labels
Test color contrast:
- Use WebAIM Contrast Checker
- Ensure text is readable (especially on custom theme colors)
- Minimum contrast ratio: 4.5:1 for normal text, 3:1 for large text
Common Accessibility Issues & Fixes
Images Missing Alt Text
Problem: Images have no description for screen reader users.
Fix in Markdown:
# Bad ❌

# Good ✅

Fix in BibTeX:
# Add descriptions for paper thumbnails
@article{mykey,
# ... other fields ...
alt={Diagram showing the three-layer neural network architecture}
}
Good alt text:
- Describes the content and purpose
- About 125 characters max
- Doesn't say "image of" (screen readers already say that)
- For charts: describe the data, not just "chart"
Examples:
❌ "Photo"
✅ "Alice Chen presenting her research on climate modeling"
❌ "Graph of results"
✅ "Bar chart showing publication counts by year from 2015 to 2024"
❌ "Logo"
✅ "University of Example logo"
Links Not Descriptive
Problem: Links like "click here" don't make sense to screen reader users.
Fix:
# Bad ❌
See my paper [here](assets/pdf/paper.pdf).
# Good ✅
Read my [analysis of climate policy](assets/pdf/paper.pdf).
Why this matters: Screen reader users often skip through links quickly. Links must be meaningful out of context.
Color Contrast Too Low
Problem: Text is hard to read against background color.
Fix:
- Use the WebAIM Contrast Checker
- Enter your text color and background color
- Ensure ratio is at least 4.5:1 (normal text) or 3:1 (large text)
- Adjust colors in
_config.ymlor_sass/_themes.scss
al-folio default colors meet WCAG AA standards, so this is usually only an issue if you customize colors heavily.
Keyboard Navigation Not Working
Problem: Some buttons or links can't be accessed with keyboard.
Fix:
- Ensure all interactive elements use semantic HTML:
<button>,<a>,<input> - Don't use
<div>or<span>as buttons - JavaScript-powered buttons need
tabindex="0"and keyboard handlers
Example (bad):
<!-- ❌ Not keyboard accessible -->
<div onclick="doSomething()">Click me</div>
Example (good):
<!-- ✅ Keyboard accessible -->
<button onclick="doSomething()">Click me</button>
Missing Form Labels
Problem: Form fields (search, contact forms) don't have associated labels.
Fix in HTML/Liquid:
<!-- ❌ No label -->
<input type="text" placeholder="Search..." />
<!-- ✅ Proper label -->
<label for="search">Search publications:</label>
<input id="search" type="text" placeholder="Search..." />
Heading Hierarchy Broken
Problem: Headings skip levels (H1 → H3, missing H2) confusing screen reader users.
Fix:
# ✅ Correct hierarchy
# Main Title (H1)
## Section 1 (H2)
### Subsection (H3)
## Section 2 (H2)
# ❌ Broken hierarchy
# Main Title (H1)
### Subsection (H3) — should be H2!
## Section 2 (H2)
Rule: Always use sequential heading levels; don't skip.
Accessibility Best Practices
Writing Content
- Use clear language – Short sentences, common words
- Avoid jargon – Explain technical terms
- Use lists – Easier to scan than paragraphs
- Short paragraphs – 3-4 lines max
- Descriptive headings – Say what the section is about
Images and Media
- Alt text for images – Describe the content
- Captions for videos – Include transcript too
- Audio transcripts – Full text of spoken content
- Color alone is not enough – Use patterns, labels too
Links
- Descriptive link text – Don't use "click here"
- Visible focus states – Already in al-folio by default
- External links – Indicate they open in new window
- Avoid misleading links – Don't link email addresses to mailto (confuses readers)
Code and Math
Code blocks:
# ✅ Good: Language specified for syntax highlighting
```python
def hello():
print("Hello world")
```
**Math equations:**
```markdown
# ✅ Include alt text for complex equations
The equation $E = mc^2$ (energy equals mass times light speed squared)
represents mass-energy equivalence.
PDFs and Documents
- Accessible PDFs – Use proper headings, alt text in PDF itself
- Link to PDF content – Offer plain text or HTML version too
- Avoid scanned images as PDFs – Use OCR to make text selectable
Testing Tools
| Tool | Purpose | Cost | Type |
|---|---|---|---|
| axe DevTools | Automated accessibility testing | Free | Browser extension |
| WAVE | Identify accessibility errors | Free | Browser extension |
| NVDA | Screen reader testing | Free | Windows screen reader |
| VoiceOver | Screen reader testing | Free | Mac screen reader |
| WebAIM Contrast Checker | Color contrast validation | Free | Web tool |
| Lighthouse | Performance & accessibility audits | Free | Built into Chrome DevTools |
| JAWS | Premium screen reader (testing) | Paid | Windows screen reader |
Resources
- WCAG 2.1 Guidelines – Official web accessibility standards
- WebAIM – Practical accessibility guides
- A11y Project – Community accessibility resource
- MDN Accessibility Docs – Technical reference
- Inclusive Components – Design patterns for accessibility
Quick Checklist
Before publishing content, ensure:
- All images have alt text
- All links are descriptive
- Heading hierarchy is correct (no skipping levels)
- Color contrast is sufficient (test with contrast checker)
- Navigation works with keyboard only
- No autoplay video/audio
- Forms have proper labels
- Your site passes axe accessibility tests
Need Help?
- GitHub Copilot Customization Agent – Ask for help making specific changes accessible
- GitHub Discussions – Ask the community
- WebAIM – Detailed guidance on accessibility techniques
Remember: Accessibility is an ongoing process, not a one-time task. Test regularly, fix issues as you find them, and keep your content accessible as you update it.