2010-06-18 13 views
20

Mi chiedevo cosa avrebbero pensato alcuni dei miei colleghi sviluppatori/progettisti web come il miglior elemento HTML 5 da utilizzare per una finestra di dialogo modale come lightbox, superbox, thickbox o qualsiasi altra cosa potrebbe essere il sapore.Elemento HTML5 semanticamente accurato per una finestra di dialogo modale

Dato che questi tipi di UI non seguono il flusso tipico di una pagina Web "normale" (che, a quanto pare, secondo i guru delle specifiche HTML 5 è, essenzialmente, un blog), essi non sono realmente in posizione come un <header>, <nav>, <section>, <article> o uno <footer> (tra gli altri nuovi elementi "semantici").

Naturalmente, c'è sempre il <div>, ma, stavo solo pensando che ci potrebbe essere qualcosa di un po 'più semanticamente accurato.

Sfortunatamente, non c'è l'elemento <modal>. Quali sono i tuoi pensieri su se ce ne dovrebbe essere uno nella specifica? E poiché l'elemento non esiste, quale sarebbe la tua prossima scelta migliore?

risposta

22

<aside> sembra appropriato. La specifica corrente con sezioni grassetto:

l'elemento aside rappresenta una sezione di una pagina che consiste di contenuti che è tangenzialmente relativi al contenuto intorno all'elemento a parte, e che potrebbe essere considerato separato da quel contenuto. Tali sezioni sono spesso rappresentate come barre laterali nella tipografia stampata .

L'elemento può essere utilizzato per effetti tipografici come le virgolette estraibili o barre laterali, per la pubblicità, per gruppi di elementi nav, e per altri contenuti che è considerato separato dal contenuto principale della pagina.

In questo caso, un modale è "tangenzialmente correlato" all'azione che lo ha causato. Mentre normalmente ci si può aspettare che una parte sia in una barra laterale, uno degli scopi del contenuto semantico è quello di consentire una versatilità che non è limitata dalle caratteristiche fisiche della pagina. L'ultima frase della specifica sembra implicare solo questo versatile caso d'uso.

+1

Anche se, per essere onesti, un altro tag semantico come "" o "

" o anche "" sembra più appropriato. – mVChr

+0

Questa è in realtà una delle risposte più fantastiche che abbia mai ricevuto — ben scritto e completo. Aspetterò qualche altra risposta, se possibile, prima che decida che la tua risposta è quella giusta, però. Grazie! – KyleFarris

+0

In una nota a margine, immagino che avrei dovuto sapere che avrebbero codificato in html il mio emdash ... Lame. – KyleFarris

15

L'attuale bozza di HTML ha un elemento dialog. È stato rimosso a un certo punto ma è tornato.

L'elemento finestra rappresenta una parte di un'applicazione che un utente interagisce con per eseguire un'operazione, ad esempio una finestra di dialogo, ispettore, o finestra.

Per accessibilità (fino a quando l'elemento è più ampiamente supportato) Includerei anche lo dialog ARIA role.

Per ottenere l'API JavaScript nei browser che non supportano nativamente l'elemento <dialog>, è possibile utilizzare uno polyfill.

+0

Mi sento un buon punto sia per te che per mVChr, forse la risposta è che non esiste un singolo elemento per rappresentare tutte le modali. Direi che ha senso dire

+0

3 anni dopo, il supporto è ancora molto scarso (http://caniuse.com/#feat=dialog), direi che è meglio per attenersi a

+1

@Capsule Grazie. Il modo in cui la domanda è stata formulata, il PO sembrava essere più interessato a una risposta teorica che a una pratica. Sembra che il supporto nativo del browser sia presente in futuro nella maggior parte dei principali browser. Ho aggiunto alcune informazioni pratiche su come scrivere un codice a prova di futuro che funzioni oggi. –