Designing webpages for Rhapsode

1. Write Semantic (X)HTML5

Use changes in Rhapsode's voice to enhance the communication of your text, that'll help people pay attention to it. To do so start by making meaningful use of the (X)HTML5 tags, and then (if you want) you can get more specific with Rhapsode-specific CSS. At the very least provide good links.

If you've got quotes, marking them with <q> or <blockquote> tags rather than quote marks will render much more clearly in Rhapsode. Rhapsode will then render these in a new voice, while visual browsers will still render them as the appropriate quote marks for your language.

2. Declare Your Page's Language

If Rhapsode knows what language your page is written in, it can alter some of the phrases it inserts to match (not that it does yet, or will have much need to insert these phrases). To do so use the `lang` or xml:lang attributes on the root <html> element.

3. Don't Rely on JavaScript

Rhapsode doesn't support JavaScript, as it's APIs don't map cleanly to Rhapsode's experience. And because Rhapsode doesn't like it's complexity or security model.

As such if your pages break when JavaScript's disabled, they'll almost certainly break in Rhapsode. The exception is for simple scripts that alter the style of an existing element, because Rhapsode follows an alternative set of CSS properties.

4. Avoid Excess Text

Listeners may tune out if you don't get straight to the point and stay on topic. As for styles, it doesn't matter much what you do as long as you're consistant.


There are a couple of additional points when it comes to navigation.

5. Never Override :link {cue-after}, not that you can

Visitors will be relying on this audio cue to know this is a link they can follow, and overriding it defeats the purpose of the link.

In fact, you are not permitted to do so. This style rule is !important.

6. Don't Rely on Navbar (Or Adjust Styles)

Because excess text can bore the visitor, Rhapsode defaults to not read out your <nav> tag. However it'll still allow visitors to follow these links if they can intuit that they exist, so it's still very useful to provide a navbar on your pages.

As such you should make sure that visitors can navigate your entire site without using the navbar. With the navbar itself acting as an enhancement but not a necessity.

Or alternatively you can override this default via the CSS nav {speak: always}. I would suggest applying this style only to your homepage, so it doesn't get in the way of your site's text.

7. Do not rely on the defaults staying as they are

Rhapsode reserves the right to adjust it's user agent stylesheet to better suite the majority of sites not targetting Rhapsode specifically. And listeners may wish to alter these defaults to better suit themselves.

As such you should you shouldn't on the defaults staying as they are, and if you try to correct that you may annoy some listeners. Instead use the strengths of CSS & relinquish your sense of design control.