Accessibility Guide
Portal Ciudadano Manta is built with accessibility as a core principle, following WCAG 2.1 Level AA standards to ensure all citizens can participate in civic engagement regardless of ability.This platform complies with:
- WCAG 2.1 AA (Web Content Accessibility Guidelines)
- ISO 9241-11 (Usability standards)
- ISO 9241-210 (Human-centered design)
Overview of Accessibility Features
Keyboard Navigation
Complete keyboard control with visible focus indicators and logical tab order
Screen Reader Support
Semantic HTML, ARIA labels, and live regions for dynamic content
Text-to-Speech
Built-in page reader with adjustable speed and volume controls
Visual Accessibility
High contrast, readable fonts, and zoom support up to 200%
Keyboard Navigation
Skip to Main Content
Every page includes a “Skip to main content” link for keyboard users.Activate Skip Link
Press
Tab immediately when page loadsA blue button appears in top-left: “Saltar al contenido principal”Global Keyboard Shortcuts
The platform implements comprehensive keyboard shortcuts viauseKeyboardShortcuts.ts.
Viewing Shortcuts: Press
? or F1 at any time to see the keyboard shortcuts panel with all available commands for your current page.Form Navigation
All forms support keyboard-only interaction:Report Problem Form
Report Problem Form
Tab Order (
ReportarProblema.vue):- Section 1 - Problem Info:
- Título input
- Categoría dropdown
- Descripción textarea
- Prioridad dropdown
- Imagen file input
- Section 2 - Contact: (auto-filled, read-only)
- Navigate through with Tab (informational)
- Section 3 - Location:
- Interactive map (keyboard accessible)
- Dirección input
- Referencias input
- Actions:
- Limpiar button
- Enviar Reporte button (primary action)
Tab: Move forward through fieldsShift + Tab: Move backwardEnter: Submit form (when on submit button)Space: Toggle checkboxes/buttons↑↓: Navigate dropdown options
Survey Forms
Survey Forms
Multiple Choice (Dashboard.vue:640-670):
Tabthrough optionsSpaceorEnterto select radio button- Visual highlight on focus
Tabto each rating number (1-5)SpaceorEnterto select- Large 64x64px touch targets
- Screen reader announces rating level
- Standard textarea with
Tabfocus - No special keyboard handling needed
Text-to-Speech Feature
Built-in page reader powered by Web Speech API (TextToSpeech.vue).
Activating Text-to-Speech
Locate TTS Button
Find floating button in bottom-right corner:
- 🔊 Blue gradient circle when inactive
- 🛑 Animated cyan pulse when reading
Start Reading
Click button or press
Ctrl + Shift + SSystem reads main content aloud, excluding:- Navigation menus
- Footer content
- Buttons and form controls
- Hidden elements (
aria-hidden="true")
Text-to-Speech Controls
- Speed Control
- Volume Control
- Language Support
- Advanced Features
Adjust Reading Speed:
- Range: 0.5x (slow) to 2.0x (fast)
- Default: 1.0x (normal)
- Recommended:
- 0.7x - 0.9x for complex content
- 1.0x - 1.2x for standard reading
- 1.5x - 2.0x for scanning
TextToSpeech.vue:92-108:Text-to-Speech Browser Support
Supported Browsers:
- ✅ Chrome 90+ (best support)
- ✅ Firefox 88+ (good support)
- ✅ Safari 14+ (iOS/macOS)
- ✅ Edge 90+
- ❌ Opera (limited voice selection)
Screen Reader Support
Semantic HTML Structure
All pages use proper HTML5 semantic elements:ARIA Labels and Roles
- Interactive Elements
- Dynamic Content
- Forms & Validation
Buttons with Clear Labels:All interactive elements have:
- Clear text labels or
aria-label - Disabled state announced
- Loading states with
aria-live
Screen Reader Testing
Platform tested with:NVDA
Windows screen reader (free, open-source)
JAWS
Job Access With Speech (Windows commercial)
VoiceOver
macOS and iOS built-in screen reader
Visual Accessibility
Color and Contrast
WCAG AA Contrast Ratios
WCAG AA Contrast Ratios
All text meets WCAG 2.1 AA requirements:
Primary Color Palette:
| Element Type | Minimum Ratio | Implementation |
|---|---|---|
| Normal text (<18px) | 4.5:1 | text-gray-900 on bg-white |
| Large text (≥18px) | 3:1 | text-gray-800 on bg-gray-50 |
| UI Components | 3:1 | Border colors, icons |
| Active states | 3:1 | Focus indicators, selections |
- Text:
#111827(gray-900) on#FFFFFF(white) = 17.8:1 ✅ - Links:
#2563EB(blue-600) on white = 8.1:1 ✅ - Buttons: White text on
#2563EB= 8.1:1 ✅
Color Independence
Color Independence
Information not conveyed by color alone:✅ Report Status:
- Color: Green/Yellow/Red
-
- Icon: ✓ / ⏱ / ✗
-
- Text label: “Resuelto” / “Pendiente” / “Rechazado”
- Color: Blue/Green/Purple badges
-
- Icon: 📊 / ⭐ / 📝
-
- Text: “Opción Múltiple” / “Calificación” / “Abierta”
- Color: Red border on error
-
- Icon: ⚠️ warning symbol
-
- Error message text
Focus Indicators
All interactive elements have visible focus states:- Buttons: 2px blue ring (
.focus:ring-2 .focus:ring-blue-500) - Links: Underline + outline
- Form inputs: 2px colored border matching input type
- Cards/clickable areas: Shadow + scale transform
Text Sizing and Zoom
- Responsive Typography
- Zoom Support
- Readable Line Lengths
Base font sizes:
Relative units:
| Breakpoint | Base Size | Body Text |
|---|---|---|
| Mobile (<640px) | 14px | text-sm (0.875rem) |
| Tablet (≥640px) | 16px | text-base (1rem) |
| Desktop (≥1024px) | 16px | text-base (1rem) |
- All text uses
remunits (scalable) - No fixed
pxvalues for text - Respects user browser font size settings
Iconography
Icon Accessibility
Icon Accessibility
Icons with text labels:Decorative icons:Icon-only buttons:
- Marked with
aria-hidden="true" - Not announced by screen readers
- Adjacent text provides meaning
Mobile Accessibility
Touch Target Sizes
All interactive elements meet minimum 44x44px touch target size (WCAG 2.5.5):- Form Controls
Mobile Screen Reader Support
iOS VoiceOver
- Swipe gestures for navigation
- Double-tap to activate
- Rotor for landmarks
- Tested on iOS 14+
Android TalkBack
- Swipe navigation
- Double-tap activation
- Local context menu
- Tested on Android 10+
Responsive Adaptations
Mobile-Specific Enhancements
Mobile-Specific Enhancements
Text-to-Speech:
- Simplified control panel on mobile
- Touch-outside-to-close gesture
- Text length limited to 500 chars
- Single column layout
- Larger input fields
- Sticky submit buttons
- Native date/time pickers
- Simplified controls
- GPS location button
- Touch-friendly markers
- Pinch-to-zoom support
Accessibility Testing
Automated Testing
Platform validated with:axe DevTools
- WCAG 2.1 AA compliance
- 0 critical issues
- Color contrast verification
Lighthouse
- Accessibility score: 95+
- Best practices: 100
- SEO optimization
Manual Testing Checklist
Keyboard Navigation Test
Keyboard Navigation Test
Screen Reader Test
Screen Reader Test
✅ Verify:
- All images have alt text or aria-label
- Form fields have associated labels
- Page landmarks announced correctly
- Dynamic content changes announced
- Button purposes clear from label
- Table structures make sense
- Lists properly structured
Visual Accessibility Test
Visual Accessibility Test
✅ Verify:
- Text readable at 200% zoom
- No loss of functionality when zoomed
- Color contrast meets WCAG AA
- Information not conveyed by color alone
- Focus indicators visible
- Text over images readable
Mobile Accessibility Test
Mobile Accessibility Test
✅ Verify:
- All touch targets ≥44x44px
- Pinch-to-zoom works
- Orientation changes handled
- Mobile screen reader works
- Forms usable on small screens
- No horizontal scrolling
Assistive Technology Support
Supported Technologies
- Screen Readers
- Speech Recognition
- Switch Control
- Magnification
Desktop:
- ✅ NVDA (Windows) - Latest version
- ✅ JAWS (Windows) - Version 2020+
- ✅ VoiceOver (macOS) - macOS 11+
- ✅ Narrator (Windows) - Windows 10+
- ✅ VoiceOver (iOS) - iOS 14+
- ✅ TalkBack (Android) - Android 10+
Common Accessibility Issues & Solutions
Can't access form with keyboard
Can't access form with keyboard
Solution:
- Ensure JavaScript is enabled
- Try refreshing page
- Use Tab key (not arrow keys) to navigate form fields
- Check browser console for errors
Screen reader not announcing content
Screen reader not announcing content
Check:
- Latest screen reader version installed
- Browser compatibility (Chrome/Firefox recommended)
- Screen reader mode enabled
- ARIA live regions may take 1-2 seconds to announce
Text-to-speech not working
Text-to-speech not working
Common causes:
- Browser doesn’t support Web Speech API
- No voices installed (Windows may need language packs)
- Page permissions denied
- Microphone permission confused with TTS
- Use Chrome, Firefox, or Edge (best support)
- Install Windows language packs
- Check site permissions in browser settings
- Try different browser if issue persists
Focus indicator not visible
Focus indicator not visible
Solutions:
- Disable browser extensions that modify CSS
- Check browser zoom level (reset to 100%)
- Try high contrast mode (Windows: Alt+Shift+PrintScr)
- Report to support if persistent
Accessibility Settings
Browser Accessibility Features
- Chrome
- Firefox
- Safari
Enable Features:
- Settings → Accessibility
- Available options:
- Image descriptions via AI
- Live Caption for media
- Focus highlighting
- Tab navigation
- Screen Reader (built-in ChromeVox)
- High Contrast
- Zoom
Operating System Accessibility
Windows Accessibility
Windows Accessibility
Enable Built-in Features:
- Settings → Ease of Access
- Narrator: Screen reader (Win+Ctrl+Enter)
- Magnifier: Screen zoom (Win+Plus)
- High Contrast: Enhanced visibility (Alt+Shift+PrintScr)
- Sticky Keys: Sequential key presses (Shift x5)
- Filter Keys: Ignore repeated keystrokes
macOS Accessibility
macOS Accessibility
Enable Built-in Features:
- System Settings → Accessibility
- VoiceOver: Screen reader (Cmd+F5)
- Zoom: Screen magnification (Cmd+Opt+8)
- Display: High contrast, reduce motion
- Voice Control: Dictation and commands
- Switch Control: Alternative input
Reporting Accessibility Issues
Accessibility Feedback
If you encounter accessibility barriers while using Portal Ciudadano Manta:Contact Information:
- 📧 Email: [email protected]
- ☎️ Phone: (05) 2622-300
- 📍 In-person: Municipal offices, Mon-Fri 08:00-17:00
- Description of the issue
- Browser and assistive technology used
- Page/feature where issue occurred
- Steps to reproduce
- Screenshots/recordings if possible
Commitment to Accessibility:Portal Ciudadano Manta is committed to ensuring digital accessibility for all citizens. We continuously work to improve the user experience and apply relevant accessibility standards.Accessibility is an ongoing effort, and we welcome feedback to make the platform more inclusive.
Additional Resources
WCAG 2.1 Guidelines
Official W3C accessibility guidelines
WebAIM
Web accessibility in mind - training and resources
A11y Project
Community-driven accessibility checklist
MDN Accessibility
Developer guides and best practices
Standards Compliance:Portal Ciudadano Manta conforms to:
- WCAG 2.1 Level AA - Web Content Accessibility Guidelines
- Section 508 (US) - Federal accessibility requirements
- EN 301 549 (EU) - European accessibility standard
- ISO 9241-11 - Usability standards
- ISO 9241-210 - Human-centered design
