blob: a8b21eb714b1fa6d273b27351d448406c8c62c13 (plain
Web browser targetting voice I/O.
See CONTRIBUTING.md for instructions on how to help the project.
## Desired Experience
Rhapsode will read a webpage outloud to you according to some special CSS properties.
Arrow key navigation will be supported for navigation between headings, paragraphs,
and table cells.
Links (defined generally enough to include `<audio>`, etc) will be indicated via
a special beep for the user to repeat one back (via microphone or keyboard) at
any time in order to navigate between pages. Rhapsode will start reading from
the `<main>` element if present.
Forms will be rendered as ordinary elements and be navigated to as a link. Once
navigated to you will be prompted to fill each input of the form in turn before
reviewing/correcting your submission before sending it.
Because I want The Web to be "universal", for browsers to have the slack they
need to present it however best suits their users and the devices they use.
Rhapsode demonstrates HTML/CSS's capabilities this way.
And because I want to discourage the excessively bloated RCE vulnarability that
I want browsers to be simple and easy to audit or write your own.
See the wiki for webdev documentation.
1. Install `espeak-ng`, `zlib1g-dev`, `ghc`, `cabal-install`. (Debian package names listed here)
2. Install the C libraries `espeak-ng` & `sndfile` (on Debian: `libespeak-ng-dev` & `libsndfile1-dev`)
3. `cabal install`:
* TODO any others?
4. (OPTIONAL) Add `~/.cabal/bin/` to your path if it isn't already.
5. Run Rhapsode with `cabal run https://example.com/ | espeak-ng -mb1`, where "https://example.com/" can/should be replaced any valid URL. Or if you followed step 3, you can replace "cabal run" with "rhapsode".