Inspiration
Many websites assume users can use a mouse, both hands, and precise motor control. People with tremor, injuries, paralysis, chronic pain, or age-related limitations often struggle to perform simple actions like clicking small buttons, closing popups, or navigating long pages. We wanted to build a tool that makes the web usable with minimal physical effort.
What it does
Our project combines two accessibility approaches: • One-hand keyboard navigation that allows users to move through interactive elements without using a mouse • Voice control that can open pages, type text, and trigger actions
Users can: • Navigate buttons and links sequentially • Click elements without precise cursor control • Skip quickly through content • Go back and forward in browsing history • Close popups without touching the trackpad • Control the browser using voice commands
This makes web browsing possible even for users with severe mobility limitations.
How we built it
We developed a Chrome extension that scans web pages for interactive elements and provides an overlay for keyboard navigation. We used JavaScript and Chrome Extension APIs for DOM interaction and browser control, and integrated voice recognition to allow hands-free commands.
Challenges we ran into • Websites use very different structures, so detecting interactive elements reliably was difficult • Handling popups and dynamic content required custom logic • Preventing interference with normal typing inside input fields • Designing controls that are powerful but still easy to use
What we learned
We learned how complex accessibility really is and how small design choices can dramatically impact usability. We also gained experience with browser extension architecture, event handling, and voice interaction systems.
Impact
This tool can help people with disabilities, temporary injuries, elderly users, and anyone who struggles with precise mouse control. Our goal is to reduce barriers and make the web usable for everyone.
Built With
- chrome
- openai
- rust
- tauri
- typescript
- vite
- webgazer
- websockets
Log in or sign up for Devpost to join the conversation.