~alcinnz/rhapsode

ref: 67bc3ea6070f8e2b75612274c87af8c1528d1370 rhapsode/README.md -rw-r--r-- 1.8 KiB
67bc3ea6 — Adrian Cochrane Make '#' refer to top of page. 4 years ago

#Rhapsode

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.

#Why?

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 is JavaScript, which does plenty of harm even without breaking out of it's sandbox! I want browsers to be simple and easy to audit or write your own.

See the wiki for webdev documentation.

#Installation/Running

  1. Install espeak-ng, zlib1g-dev, ghc, cabal-install. (Debian package names listed here)
  2. Install the C libraries espeak-ng & sndfile
  3. From within the git repository, run cabal install. This'll compile Rhapsode and all it's other dependencies.
  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".