2010-04-08 11 views

risposta

6

I lettori di schermo leggono "&" come "e" e i browser di solo testo lo visualizzeranno come "&".

La ragione per cui si scrive & è perché "&" è un carattere speciale in XHTML e deve essere sottoposto a escape. Qualsiasi browser/screen reader che capisca XHTML sa che & è la e commerciale con escape ('&') e lo visualizzerà come tale o lo leggerà ad alta voce come "e".

Se si scrive un documento XHTML, non è un caso di come rendere il vostro alt-testo più screenreader amichevole - si necessario sostituire i segni & nude con & o rischiare il documento non convalida e potenzialmente la visualizzazione in modo non corretto.

3

È necessario escape the plain & with a character reference come & al fine di avere un documento XHTML valido:

Il carattere commerciale (&) [...] potrebbe apparire nella loro forma letterale soltanto quando viene utilizzato come delimitatori di markup, o all'interno di un commento , un'istruzione di elaborazione o una sezione CDATA. Se sono necessari altrove, devono essere sfuggiti usando sia riferimenti a caratteri numerici o le stringhe "&" [...]

6

In HTML - non importa (dal momento che la e commerciale è seguito da uno spazio).

In XHTML - & è un errore di formattazione ed è completamente inaccettabile.

+0

ma come lo screen reader leggerà questo '&'? –

+0

Non lo farà. Il browser analizzerà l'HTML o l'XHTML e genererà un DOM che renderà. Lo screen reader leggerà quindi ciò che è sullo schermo con suggerimenti dal browser. – Quentin

+2

Come regola generale, scrivere codice HTML corretto e non aspettarsi che gli screen reader richiedano errori. – Quentin

0

Invia sempre il carattere di e commerciale con la corretta codifica dei caratteri. In HTML è & amp; oppure & # 38 ;. Nell'URI è% 26 e non uno dei due precedenti. L'escape dei caratteri di sintassi non causerà l'errore di XML. Se il tuo codice HTML deve mai essere integrato o interpretato da un motore XML, il tuo codice si romperà.

+0

Il codice corretto per '&' è '% 26' e non'% 38'. E nota che 'href =" foo% 26bar "' è diverso da 'href =" foo & bar "' come la dichiarazione del valore precedente sarà valutata a 'pippo% 26bar' mentre il secondo sarà valutato a' pippo e barra'. – Gumbo

+0

È corretto che l'escape URI corretto per la e commerciale sia% 26, ma href = "cibo & bar" è una sintassi URI non valida. L'escape che si menziona è il risultato di una preelaborazione da un'applicazione utente-agente e non una considerazione dell'URI stesso. Questo è il motivo per cui le persone in genere sfuggono erroneamente ai caratteri nell'URI. –

Problemi correlati