-
Notifications
You must be signed in to change notification settings - Fork 0
Development Setup
Luc edited this page Nov 20, 2025
·
1 revision
Guide to setting up your development environment for contributing to the Accessibility Widget.
Before you begin, ensure you have:
- Git - Version control
- Text Editor - VS Code, Sublime Text, or your preferred editor
- Web Browser - Chrome, Firefox, Safari, or Edge
- Local Web Server - For testing (optional but recommended)
git clone https://github.com/airforcerp/Website-Accessibility-Widget.git
cd Website-Accessibility-WidgetWebsite-Accessibility-Widget/
βββ web/
β βββ accessibility-plugin.js # Main plugin code
β βββ accessibility-plugin.css # Plugin styles
β βββ accessibility-config.js # Configuration
β βββ example.html # HTML example
β βββ example-php.php # PHP example
βββ index.html # Demo page
βββ README.md # Main documentation
βββ wiki/ # Wiki pages
Open web/example.html in your browser to see the plugin in action.
Recommended extensions:
- ESLint - JavaScript linting
- Prettier - Code formatting
- Live Server - Local development server
- GitLens - Git integration
Create .vscode/settings.json:
{
"editor.formatOnSave": true,
"editor.tabSize": 4,
"javascript.format.indentSize": 4,
"css.format.indentSize": 4
}# Python 3
python -m http.server 8000
# Python 2
python -m SimpleHTTPServer 8000Access at: http://localhost:8000
npm install -g http-server
http-server -p 8000- Install Live Server extension
- Right-click
example.html - Select "Open with Live Server"
-
accessibility-plugin.js (1618 lines)
- Main plugin logic
- Widget creation
- Feature implementations
- API exports
-
accessibility-plugin.css (885 lines)
- Widget styles
- Panel styles
- Feature styles
- Responsive design
-
accessibility-config.js (67 lines)
- Default configuration
- User-customizable settings
-
createWidget()- Creates the widget UI -
createControl()- Creates form controls -
togglePanel()- Opens/closes panel
-
applySettings()- Applies all settings -
loadPreferences()- Loads saved preferences -
savePreferences()- Saves current preferences
-
applyColorBlindnessFilter()- Color filters -
speakText()- Text-to-speech -
enableReadingGuide()- Reading guide - And many more...
-
Open Example File
open web/example.html # or python -m http.server 8000 # Then visit http://localhost:8000/web/example.html
-
Test Features
- Click accessibility button
- Test all features
- Check browser console for errors
- Test in multiple browsers
Test in:
- β Chrome (latest)
- β Firefox (latest)
- β Safari (latest)
- β Edge (latest)
- β Mobile browsers
- Widget appears and works
- All features function correctly
- No console errors
- Settings persist
- Responsive on mobile
- Keyboard navigation works
- TTS works (where supported)
-
Create Branch
git checkout -b feature/your-feature
-
Make Changes
- Edit files
- Test changes
- Check for errors
-
Test Thoroughly
- Multiple browsers
- Mobile devices
- Different screen sizes
-
Commit Changes
git add . git commit -m "Description of changes"
-
Push and PR
git push origin feature/your-feature
- Indentation: 4 spaces
- Naming: camelCase for variables, kebab-case for CSS
- Comments: Add for complex logic
- Formatting: Consistent style throughout
// Check if plugin loaded
console.log(typeof AccessibilityPlugin);
// Get current settings
console.log(AccessibilityPlugin.getSettings());
// Test API methods
AccessibilityPlugin.toggle();Add debug logging:
function debugLog(message) {
if (window.DEBUG_ACCESSIBILITY) {
console.log('[Accessibility]', message);
}
}The plugin is pure JavaScript and CSS - no build step needed!
For production, you can minify:
# Using terser for JS
npx terser accessibility-plugin.js -o accessibility-plugin.min.js
# Using cssnano for CSS
npx cssnano accessibility-plugin.css accessibility-plugin.min.css-
Widget Not Appearing
- Check file paths
- Check browser console
- Verify Boxicons is loaded
-
Features Not Working
- Check browser compatibility
- Verify settings are applied
- Check for JavaScript errors
-
Styles Not Applied
- Check CSS file is loaded
- Verify no conflicts
- Check specificity
- Browser DevTools: F12
- Console: Check for errors
- Network Tab: Verify file loading
- Elements Tab: Inspect DOM
- Read Architecture documentation
- Review Contributing guide
- Pick an issue or feature to work on
- Create a branch and start coding!
- Check Troubleshooting guide
- Review FAQ
- Open an issue on GitHub
- Email: support@airforcerp.com
Last Updated: November 2025
- 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