accessify
Web accessibility for low-bandwidth inputs
Note: We have published a proof-of-concept website at https://brainsatplay.com/accessify (index.html in this repo) that ginteractively demonstrates the value proposition of this library. Check it out!
Introduction
Goal
Implement a fully on-browser web navigation system for low-bandwidth inputs (e.g. BCIs).
Features
Questions
Which devices can be used to detect P300 / SSVEP responses?
Does detection disrupt stimuli generation?
Does detection work on low-spec hardware?
- Validate detection on a Chromebook
Repo Structure
Rough Reference
Classes
accessify.Keyboard()
Customizable keyboard with SSVEP / P300 controls
accessify.Mouse()
Virtual mouse
Namespaces
accessify.select(type)
- p300: Basic P300 Detection
- potentials.p300(): Basic P300 Detection
- ssvep: Basic SSVEP Detection
- hightime.fbcca(): Filter Bank Canonical Correlation Analysis (FBCCA) algorithm
accessify.move(type)
- erd / ers: Basic Event-Related (De)Synchronization (i.e. motor imagery) Detection
Roadmap
- Write an explanatory article that also can serve as a proof-of-concept (June 1st, 2022)
- Plug in Webgazer to detect where the user is looking on the screen.
- Implement Filter Bank Canonical Correlation Analysis (FBCCA) in hightime
- Test FBCCA algorithm on a single flashing stimulus
- Implement P300 detection in potentials with all the signal processing in hightime
- Test P300 detection on a single flashing stimulus
- Test both algorithms on various EEG devices
- Test both algorithms on a Chromebook
- Test both algorithms with multiple stimuli to discriminate from
- Design a navigation scheme (i.e. Web Components) that can use the algorithms to navigate a webpage
- Design a Chrome Extension that allows for generic web browsing
- Implement auditory BCI methods too!
Dependencies
- ssvep: Detect SSVEP on the browser
- potentials: Detect ERPs on the browser
- webgazer: Scalable Webcam EyeTracking Using User Interactions
Peer Dependencies