~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
                                                                                
e7966356 Adrian Cochrane
6aa42076 Adrian Cochrane
e7966356 Adrian Cochrane
4296814b Adrian Cochrane
e7966356 Adrian Cochrane
4296814b Adrian Cochrane
e7966356 Adrian Cochrane
4296814b Adrian Cochrane
e7966356 Adrian Cochrane
4296814b Adrian Cochrane
e7966356 Adrian Cochrane
4296814b Adrian Cochrane
d310e8f0 Adrian Cochrane
e0502097 Adrian Cochrane
d310e8f0 Adrian Cochrane
e0502097 Adrian Cochrane
4296814b Adrian Cochrane
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".