Hi!
Wuerde er den Fehler auch bei display:none vorlesen oder nur dann, wenn er auch angezeigt wird.
Ich habe nie getestet, wie sich ein Screenreader in diesem Fall verhält.
Es gibt verschiedene Ansätze solcher Programme.
Zum einen gibt es richtige Screenreader, die praktisch echte Browser sind.
Die Dinger verstehen dann auch HTML und CSS.
Zum anderen gibt es Text2Speech-Tools, die vorlesen, was auf dem Screen ist.
Solche Programme kann man zwar auch in den Browser integrieren und sich Websites vorlesen lassen, aber die Dinger können weder HTML noch CSS.
Ein Text2Speech-Tool, das nur liest, was auf dem Screen zu sehen ist, bleibt bei deinem display:none;
dementsprechend natürlich stumm.
Wie sich ein Screenreader-Browser hier allerdings verhält, weiß ich nicht genau.
Wenn du nicht möchtest, daß ein Text von einem richtigen Screenreader vorgelesen wird, dann solltest du speak:none;
setzen.
Wenn du nur ein einziges Stylesheet verwendest, kannst du deinem Element neben der display-Eigenschaft auch noch die speak-Eigenschaft zuweisen.
Wenn du verschiedene Stylesheets für verschiedene Mediatypes einsetzt, solltest du wissen, daß der richtige Mediatype in CSS 2 "aural" heißt, in CSS 2.1 allerdings als "mißbilligt" eingestuft wurde und in CSS 3 dann "speech" heißen wird.
Weitere CSS-Eigenschaften für die Sprachausgabe findest du in SelfHTML.
Naja und zu deinem Konzept selbst und dem Problem mit Textbrowsern hat wahsaga dir eigentlich schon alles geschrieben, was dazu zu sagen wäre.
Schöner Gruß,
rob