The CSS 'Reader' Media Type

W3C Working Draft 24 February 2004

This version:
Latest version:
Previous version:
Bert Bos (W3C), <>


This is the first draft of the 'reader' media type. It is published to get some early feedback, especially on whether 'reader' is necessary and implementable.

'Reader' is a keyword for use in Media Queries [MEDIAQ]. When a Media Query that includes the 'reader' keyword is attached to (a link to) a style sheet, it indicates that that style sheet is designed to be used by a "reader" device (typically a screen reader), that both displays and speaks a document at the same time. It may also display the document and render it in braille at the same time, or do all three.

Media Queries (and thus 'reader') can be used in documents in HTML [HTML401], XML [XML10], SVG [SVG10], CSS [CSS21] and other formats, wherever they link to a style sheet, and potentially also in links to other resources. (But the latter is not treated in this specification.)

Status of this document

This section describes the status of this document at the time of its publication. Other documents may supersede it. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at

It is inappropriate to use W3C Working Drafts as reference material or to cite them as other than "work in progress." Its publication does not imply endorsement by the W3C membership. Implementations for the purpose of experimenting with the specification are welcomed, as long as they are clearly marked as experimental.

This document is a working draft of the CSS Working Group which is part of the style activity (see summary).

Comments on and discussions of this draft can be sent to the (archived) public mailing list (see instructions). W3C Members can also send comments directly to the CSS working group.

Patent disclosures relevant to CSS may be found on the Working Group's public patent disclosure page.

This is the first draft in this series ("css3-reader").

Table of contents

1. Dependencies on other modules

This CSS3 module depends on the following other CSS specifications:

2. Introduction

HTML [HTML401], XML [XML10], SVG [SVG10], CSS [CSS21] and other formats can link to one or more style sheets that help in specifying the way a document is rendered for a human reader. Media Queries [MEDIAQ] can be attached to those links to indicate for what type of device or media the style sheet is designed, e.g., big screen with color, small monochrome screen, printer, slide projector or speech synthesizer.

E.g., an HTML4 document can link to a style sheet for use on (computer) screens and another for use on printers like this:

  <title>My HTML document</title>
  <link rel="stylesheet" media="screen" href="my-screen-style.css">
  <link rel="stylesheet" media="print" href="my-print-style.css">

The following example CSS style sheet links to another style sheet for printing and includes style rules that apply to a slide projection:

@import "my-print-style.css" print;

@media projection {
  h1 { page-break-before: always }
  h2 { color: red }

Media Queries contain a media type ('screen', 'print', 'projection', 'speech', etc.) optionally followed by further constraints ('min-width', 'max-width', 'color', etc.). 'Reader' is one such media type, applying to devices like screen readers, that display a document visually and read it with the help of a speech synthesizer at the same time.

The following is an XML document in some hypothetical format, that includes the standard style sheet Processing Instruction (the "style PI") [XMLSTYLE] to link to two style sheets, one for rendering on color screens in a window that is less then 400 pixels wide and another for readers that have a monitor in portrait mode:

<?xml-stylesheet href="style1.css" type="text/css"
  media="screen and (color) and (max-width: 400px"?>
<?xml-stylesheet href="style2.css" type="text/css"
  media="reader and (max-device-ratio: 1/1)"?>

3. The 'reader' media type

The keyword 'reader' is a "media type" as defined by Media Queries [MEDIAQ]. It can be used in all places where Media Queries can be used (including LINK elements in HTML, the style PI in XML and @import/@media in CSS).

'Reader' is exclusive with all other media types defined in Media Queries, except with the keyword 'all'. That is, a user agent that applies style rules marked as being for a 'reader' must not at the same time apply style rules marked for some other media.

However, a single user agent might operate in different "modes" at different times or even at the same time in different windows (different "canvasses"). A user agent can, e.g., provide a print preview (using style rules for the 'print' media) and a simulation of a handheld device (using style rules for 'handheld').

This specification does not define which UAs must use which media type. UAs (or the users using them) can select which media type best fits them and the environment in which they run. The following are therefore only informative guidelines:

The 'reader' media type typically is used by a UA that:

Do we need a pseudo-class for the element currently being spoken? (Karaoke!)

4. CSS features that apply to 'reader'

The CSS features that apply to the 'reader' media type are all properties and other features that apply to the following media groups. See section 7.3.1 "Media Groups" of CSS 2.1 [CSS21] for definitions of these groups. [No section to point to in CSS3 yet?]

continuous / paged? visual / audio / speech / tactile? grid / bitmap? interactive / static?
reader continuous all both interactive

All property definitions in CSS3 modules include a line that specifies to which of these media groups the property applies.

Note that 'reader' can be used both with bitmapped and with grid-based screens. To distinguish between the two types, a designer can use the 'grid' media feature as defined by Media Queries [MEDIAQ].

E.g., a style sheet might be written as follows:

@media reader and (grid: 0) {
    /* styles for bitmapped displays */
@media reader and (grid: 1) {
    /* Styles for grid-based displays */

Can it be "static" as well? A reader that just starts reading at the top and continues until the end of the document, scrolling the display as needed, without user interaction? Maybe not important.

5. Test suite


6. Profiles


7. Conformance



Joe Clark (see message on www-style and [FIR])

Normative references

Bert Bos; Tantek Çelik; Ian Hickson; Håkon Wium Lie. Cascading Style Sheets, level 2 revision 1. 15 September 2003. W3C Working Draft. (Work in progress) URL:
Håkon Wium Lie; Tantek Çelik; Daniel Glazman. Media queries. 8 July 2002. W3C Candidate Recommendation. (Work in progress.) URL:

Other references

Joe Clark. "Facts and Opinion About Fahrner Image Replacement" in: A List Apart. Issue No. 160. 20 October 2003. URL:
Raggett, D.; Le Hors, A.; Jacobs, I.. HTML 4.01 Specification. Dec 1999. W3C Recommendation. URL:
Various. Scalable Vector Graphics (SVG) 1.0 Specification. Sep 2001. W3C Recommendation. URL:
Tim Bray; Jean Paoli; C. M. Sperberg-McQueen; Eve Maler. Extensible Markup Language (XML) 1.0 (Second Edition). Oct 2000. W3C Recommendation. URL:
J. Clark. Associating Style Sheets with XML documents. 29 June 1999. W3C Recommendation. URL: