-
Notifications
You must be signed in to change notification settings - Fork 0
API
Complete reference for the Accessibility Widget JavaScript API.
The plugin exposes a global AccessibilityPlugin object that provides programmatic control over all accessibility features.
// Check if plugin is loaded if (typeof AccessibilityPlugin !== 'undefined') { // Plugin is available }
Opens or closes the accessibility panel.
Syntax:
AccessibilityPlugin.toggle();
Returns: undefined
Example:
// Toggle the panel AccessibilityPlugin.toggle(); // Toggle from a custom button document.getElementById('myBtn').addEventListener('click', function() { AccessibilityPlugin.toggle(); });
Resets all accessibility settings to their default values.
Syntax:
AccessibilityPlugin.reset();
Returns: undefined
Example:
// Reset all settings AccessibilityPlugin.reset(); // Reset after 5 seconds setTimeout(function() { AccessibilityPlugin.reset(); }, 5000);
Returns an object containing all current accessibility settings.
Syntax:
AccessibilityPlugin.getSettings();
Returns: Object - An object containing all current settings
Example:
// Get current settings const settings = AccessibilityPlugin.getSettings(); console.log(settings); // Output: { // fontSize: 100, // contrast: 'normal', // colorBlindness: 'none', // ttsEnabled: false, // ... // } // Check specific setting const fontSize = AccessibilityPlugin.getSettings().fontSize; console.log('Current font size:', fontSize);
Returned Object Properties:
-
fontSize(number): Current font size percentage -
contrast(string): Current contrast mode -
lineHeight(string): Current line height -
letterSpacing(string): Current letter spacing -
fontFamily(string): Current font family -
colorBlindness(string): Current color blindness filter -
focusIndicator(boolean): Focus indicator enabled -
readingGuide(boolean): Reading guide enabled -
stopAnimations(boolean): Animations stopped -
underlineLinks(boolean): Links underlined -
showImageAlt(boolean): Image alt text shown -
ttsEnabled(boolean): TTS enabled -
ttsRate(number): TTS speech rate -
ttsPitch(number): TTS pitch -
ttsVolume(number): TTS volume
Sets the font size percentage.
Syntax:
AccessibilityPlugin.setFontSize(size);
Parameters:
-
size(number): Font size percentage. Must be one of:75,100,125,150, or200
Returns: undefined
Example:
// Set font size to 150% AccessibilityPlugin.setFontSize(150); // Increase font size incrementally function increaseFontSize() { const current = AccessibilityPlugin.getSettings().fontSize; const sizes = [75, 100, 125, 150, 200]; const currentIndex = sizes.indexOf(current); if (currentIndex < sizes.length - 1) { AccessibilityPlugin.setFontSize(sizes[currentIndex + 1]); } }
Sets the contrast mode.
Syntax:
AccessibilityPlugin.setContrast(mode);
Parameters:
-
mode(string): Contrast mode. Must be one of:'normal','high', or'dark'
Returns: undefined
Example:
// Set high contrast AccessibilityPlugin.setContrast('high'); // Toggle between normal and high contrast function toggleContrast() { const current = AccessibilityPlugin.getSettings().contrast; AccessibilityPlugin.setContrast(current === 'normal' ? 'high' : 'normal'); } // Set dark mode AccessibilityPlugin.setContrast('dark');
Sets the color blindness filter.
Syntax:
AccessibilityPlugin.setColorBlindness(type);
Parameters:
-
type(string): Color blindness type. Must be one of:'none','protanopia','deuteranopia','tritanopia', or'achromatopsia'
Returns: undefined
Example:
// Apply protanopia filter AccessibilityPlugin.setColorBlindness('protanopia'); // Cycle through color blindness filters const filters = ['none', 'protanopia', 'deuteranopia', 'tritanopia', 'achromatopsia']; let currentFilterIndex = 0; function cycleColorBlindness() { currentFilterIndex = (currentFilterIndex + 1) % filters.length; AccessibilityPlugin.setColorBlindness(filters[currentFilterIndex]); } // Remove filter AccessibilityPlugin.setColorBlindness('none');
Speaks the provided text using text-to-speech.
Syntax:
AccessibilityPlugin.speak(text);
Parameters:
-
text(string): The text to be spoken
Returns: undefined
Example:
// Speak custom text AccessibilityPlugin.speak('Hello, this is text-to-speech'); // Speak selected text function speakSelection() { const selectedText = window.getSelection().toString(); if (selectedText) { AccessibilityPlugin.speak(selectedText); } } // Speak page content AccessibilityPlugin.speak(document.body.innerText.substring(0, 5000));
Notes:
- Maximum recommended text length is 5000 characters
- Requires browser support for Web Speech API
- May require user interaction to activate (browser security)
Stops the current text-to-speech playback.
Syntax:
AccessibilityPlugin.stopSpeaking();
Returns: undefined
Example:
// Stop speaking AccessibilityPlugin.stopSpeaking(); // Stop speaking after 10 seconds AccessibilityPlugin.speak('This is a long text...'); setTimeout(function() { AccessibilityPlugin.stopSpeaking(); }, 10000);
// Check user's system preferences if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) { // User prefers reduced motion // Plugin automatically handles this, but you can add custom logic } if (window.matchMedia('(prefers-contrast: high)').matches) { AccessibilityPlugin.setContrast('high'); } if (window.matchMedia('(prefers-color-scheme: dark)').matches) { AccessibilityPlugin.setContrast('dark'); }
// Save preferences function savePreferences() { const settings = AccessibilityPlugin.getSettings(); localStorage.setItem('myApp_accessibility', JSON.stringify(settings)); } // Restore preferences function restorePreferences() { const saved = localStorage.getItem('myApp_accessibility'); if (saved) { const settings = JSON.parse(saved); AccessibilityPlugin.setFontSize(settings.fontSize); AccessibilityPlugin.setContrast(settings.contrast); AccessibilityPlugin.setColorBlindness(settings.colorBlindness); } } // Call on page load window.addEventListener('load', restorePreferences); // Save on settings change // (You would need to listen for changes or call savePreferences() after each change)
// Create custom font size buttons document.getElementById('fontSmall').addEventListener('click', function() { AccessibilityPlugin.setFontSize(75); }); document.getElementById('fontNormal').addEventListener('click', function() { AccessibilityPlugin.setFontSize(100); }); document.getElementById('fontLarge').addEventListener('click', function() { AccessibilityPlugin.setFontSize(150); }); // Create custom contrast toggle document.getElementById('toggleContrast').addEventListener('click', function() { const current = AccessibilityPlugin.getSettings().contrast; const next = current === 'normal' ? 'high' : 'normal'; AccessibilityPlugin.setContrast(next); });
// Sync with your app's settings function syncAccessibilitySettings() { const appSettings = getMyAppSettings(); // Your function if (appSettings.fontSize) { AccessibilityPlugin.setFontSize(appSettings.fontSize); } if (appSettings.contrast) { AccessibilityPlugin.setContrast(appSettings.contrast); } } // Update your app when accessibility settings change function onAccessibilityChange() { const settings = AccessibilityPlugin.getSettings(); updateMyAppSettings(settings); // Your function }
- Plugin Must Be Loaded: Ensure the plugin is fully loaded before using the API
- Browser Support: Some features (like TTS) require specific browser support
- User Settings Override: User-selected settings override programmatic changes
- Persistence: Settings are automatically saved to localStorage
// Check if plugin is available if (typeof AccessibilityPlugin === 'undefined') { console.error('Accessibility Plugin is not loaded'); return; } // Try-catch for API calls try { AccessibilityPlugin.setFontSize(150); } catch (error) { console.error('Error setting font size:', error); }
- Installation Guide - Step-by-step installation instructions
- Quick Start Guide - Get up and running in 5 minutes
- Configuration Guide - Customize the plugin to your needs
- Features Overview - Complete list of all features
- JavaScript API - Programmatic control documentation
- Browser Compatibility - Supported browsers and features
- WordPress Integration - How to integrate with WordPress
- Customization Guide - Styling and theming
- Advanced Usage - Tips and tricks for power users
- Contributing - How to contribute to the project
- Development Setup - Set up your development environment
- Architecture - Understanding the codebase
- Troubleshooting - Common issues and solutions
- FAQ - Frequently asked questions
- Known Issues - Current limitations and workarounds