1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 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".