summaryrefslogtreecommitdiff
path: root/README.md
blob: a8b21eb714b1fa6d273b27351d448406c8c62c13 (plain)
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
38
39
40
41
# 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` (on Debian: `libespeak-ng-dev` & `libsndfile1-dev`)
3. `cabal install`:
    * `xml-conduit-stylist`
    * `stylist`
    * `hurl`
    * 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".