
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
accessibility-sidebar
Advanced tools
A comprehensive, lightweight accessibility widget for web and mobile apps with WCAG 2.1 AA compliance
A comprehensive, lightweight accessibility widget that enhances web and mobile app usability with customizable accessibility features. This toolkit provides both React components and vanilla JavaScript implementations for maximum flexibility.
This project is deeply personal to me. As someone passionate about neurodivergent advocacy, I've dedicated my life to creating inclusive digital experiences. Through my work at AboutADHD.com, About ADHD Romania, and Asociația SuntAutist, I've seen firsthand how accessibility barriers can exclude and frustrate neurodivergent individuals.
Every line of code in this project represents my commitment to breaking down these barriers. This isn't just a technical tool—it's a bridge to digital inclusion for ADHD, autistic, and other neurodivergent communities who deserve equal access to the digital world.
<!-- Add to your HTML head -->
<script src="https://unpkg.com/accessibility-sidebar@latest/dist/accessibility-sidebar.min.js"></script>
<!-- Initialize anywhere in your body -->
<script>
// The widget will automatically appear on your page
window.AccessibilitySidebar();
</script>
npm install accessibility-sidebar
Vanilla JavaScript:
import AccessibilitySidebar from 'accessibility-sidebar/accessibility-sidebar-enhanced.js';
// Initialize the component
const widget = new AccessibilitySidebar();
document.body.appendChild(widget.element);
React Component:
import React from 'react';
import AccessibilitySidebar from 'accessibility-sidebar/AccessibilitySidebar.jsx';
export default function App() {
return (
<div>
<AccessibilitySidebar />
<main>Your app content here</main>
</div>
);
}
This package includes multiple implementation options:
AccessibilitySidebar.jsx - Main React componentaccessibility-sidebar-enhanced.js - Vanilla JavaScript versionaccessibility-sidebar-enhanced.jsx - Enhanced React component with additional featuresAccessibilityExample.jsx - Usage example and demo component// Custom configuration
window.AccessibilitySidebar({
position: { x: 20, y: 100 },
theme: 'dark',
languages: ['en', 'ro'],
features: {
fontSize: true,
contrast: true,
lineHeight: true,
textToSpeech: true
}
});
import AccessibilitySidebar from 'accessibility-sidebar/AccessibilitySidebar.jsx';
<AccessibilitySidebar
onFontSizeChange={(size) => console.log('Font size changed:', size)}
onContrastChange={(enabled) => console.log('High contrast:', enabled)}
onLineHeightChange={(height) => console.log('Line height:', height)}
initialPosition={{ x: 20, y: 100 }}
theme="light"
/>
Copy the environment template:
cp .env.example .env
Configure your development settings in .env:
# Git Configuration (for development)
GIT_AUTHOR_EMAIL=your-email@example.com
GIT_AUTHOR_NAME=Your Name
# Development Settings
NODE_ENV=development
npm run dev # Development build with hot reload
npm run build # Production build
npm run build:minified # Highly optimized minified build
npm run lint # Run ESLint
npm run format # Format code with Prettier
accessibility-sidebar/
├── src/
│ └── index.js # Webpack entry point
├── AccessibilitySidebar.jsx # Main React component
├── accessibility-sidebar-enhanced.js # Vanilla JS implementation
├── accessibility-sidebar-enhanced.jsx # Enhanced React component
├── AccessibilityExample.jsx # Usage examples
├── webpack.config.js # Build configuration
├── .babelrc # Babel configuration
├── .env.example # Environment template
└── dist/ # Built files (generated)
The build process generates optimized files in the dist/ directory:
accessibility-sidebar.js - Development buildaccessibility-sidebar.min.js - Production minified build (~15KB gzipped)The widget respects your site's CSS custom properties and can be styled to match your brand:
:root {
--accessibility-primary-color: #007bff;
--accessibility-background: #ffffff;
--accessibility-text-color: #333333;
}
// Listen for accessibility changes
document.addEventListener('accessibilityChange', (event) => {
console.log('Accessibility setting changed:', event.detail);
});
We welcome contributions from developers who share our mission of digital inclusion! Please read our Contributing Guidelines for detailed information on:
Whether you're fixing bugs, adding features, improving documentation, or helping with accessibility testing, your contributions help make the web more inclusive for neurodivergent individuals.
Licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Companies can use this widget on their websites for accessibility purposes with proper attribution, but cannot profit from the tool itself (e.g., selling it as part of paid services or subscription packages).
See LICENSE file for complete terms and attribution requirements.
For support and inquiries, contact: contact@andreihodorog.com
Making the web accessible for everyone, one website at a time. 🌍♿
FAQs
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.