Archivio > Markup, Semantica > Singolo: Marcare i moduli

Marcare i moduli

Su Mint Forums si discuteva riguardo al metodo migliore per marcare semanticamente i moduli. Fra le varie opzioni disponibili c'erano:

  1. Utilizzo di <input> dentro a <label>.

    <label for="nome">
        Nome:
        <input id="nome" type="text" />
    </label>
    
  2. Utilizzo di liste non ordinate.

    <ul>
        <li>
            <label for="nome">Nome:</label>
            <input id="nome" type="text" />
        </li>
    </ul>
    
  3. Utilizzo di paragrafi e/o contenitori vuoti (<div>).

    <div>
        <label for="nome">Nome:</label>
        <input id="nome" type="text" />
    </div>
    
  4. Utilizzo di liste di definzione.

    <dl>
        <dt><label for="nome">Nome:</label></dt>
        <dd><input id="nome" type="text" /></dd>
    </dl>
    

Personalmente, un approccio che escluderei a priori è il primo, in quanto annidare un campo di testo dentro all'etichetta che lo definisce mi dà un'orrenda sensazione di confusione e disordine.
Tra le altre cose, <label> è un elemento inline, il che significherebbe affidare ad esso il compito di strutturare un modulo: il senso complessivo comunica instabilità e fragilità, e per quel che mi riguarda quindi la proposta è da bocciare.

Il secondo metodo potrebbe essere già più consono al contesto: una lista di campi formati da nome/valore.
Quel che però fa storcere il naso, è che spesso i moduli non sono poi così lineari, e non includono solo campi di testo semplici, ma menù a cascata, checkboxes e bottoni radio. Organizzare quindi dei forms attraverso l'uso di liste non ordinate è sicuramente lecito ma è una scelta che non condivido pienamente, in quanto in questo ambito non si parla propriamente di una lista, o perlomeno non di un elemento lineare o gerarchico.

La terza opzione, per quanto banale possa essere, è quella sulla quale farei più affidamento. I <div> sono contenitori generici di livello blocco, per cui sono adatti a svolgere praticamente ogni tipo di compito, o perlomeno ad offrire una buona alternativa in quei casi in cui ci troviamo di fronte ad una grande indecisione, come ora. Sono flessibili, permettono una buona suddivisione strutturale, e posso essere gestiti con grande facilità anche attraverso i fogli di stile, e il risultato complessivo è - secondo me - semanticamente corretto.

Ma prima di fermarci, arriviamo al quarto punto: le liste di definizione. Personalmente avrei ecluso a prescindere anche questo tipo di marcamento, se non mi fossi accorto (grazie ad uno degli utenti del forum sopra citato) che quest'ultime servono anche a definire elementi organizzati secondo una coppia nome/valore. Bingo.

A questo punto, mi piacerebbe generalizzare e astrarre dal discorso portato avanti sino ad ora, per parlare di semantica come interpretazione.

Abbiamo visto che ci sono quattro diversi metodi (e forse più) per marcare semanticamente un modulo. Ognuno di questi è considerato più o meno attendibile dagli utenti, e viene probabilmente utilizzato largamente in migliaia di pagine. Io stesso ho proposto il terzo come quello più semanticamente corretto.

C'è però un problema di fondo: chi mi dice che io abbia ragione?
Evitando di entrare nel filosofico vorrei semplicemente chiarire che, dopo tanto tempo, trovo che la semantica sia sempre più espressione di soggettività e, appunto, interpretazione. Ognuno di noi ha una propria concezione di pagina web e di elemento HTML, ed è giusto che sia così.

Abbiamo attualmente a disposizione tanti metodi per realizzare documenti semanticamente ben formati, e ottenere i medesimi risultati. E' tuttavia errato, per come la vedo io, parlare di specifiche confusionarie, perchè in realtà il concetto sta tutto nella libertà di agire e decidere, che dovrebbe essere sempre alla base della mentalità dello sviluppatore. Entro certi limiti, ovviamente.

Bene, adesso che siete arrivati qui, dimenticatevi le mia noiosa e prolissa critica di inizio articolo, e cominciate a riflettere su quale sia il metodo che più si addice al vostro modo di concepire un modulo. Anche questo in fondo è uno stile (vedi articolo precedente), uno dei tanti criteri di procedimento.

Man mano che il linguaggio si evolve, diventa più preciso e severo, ma questo lascia sempre e comunque ampio spazio all'iniziativa. Cambia la sintassi e cambiano gli elementi dell'impalcatura, ma il concetto rimane sempre lo stesso (e non è detto che il mio punto di vista sia quello giusto): la semantica necessita di un controllo umano così come l'accessibilità; dà adito a numerose interpretazioni, ma soprattutto non preclude la possibilità di ottenere ottimi risultati con metodi paralleli ugualmente validi.

Ciò ovviamente non significa che la scelta sia sempre quella giusta, visto che spesso capita di imbattersi in incomprensioni, ovvero in utilizzi scorretti dei tag al fine di beneficiare della loro presentazione a livello estetico. Questo non è semantico, è semplicemente sbagliato.

Quello che ho imparato in quest'occasione, quindi, è che dare un metodo come semanticamente corretto è un conto, mentre sostenere che il nostro è quello più semanticamente corretto risulta sostanzialmente impreciso e l'affermazione non è affidabile.

Approfondimenti

L'articolo è stato di tuo gradimento? Puoi controllare che vi sia altro di tuo interesse nelle categorie e , oppure iscriverti al notiziario RSS e seguirmi su per restare sempre aggiornato sulle ultime pubblicazioni.

Pubblicato domenica 25 marzo 2007.

Discussione [1]

  1. Andre aggiunge:

    [Immagine] Segue l'intervento di Andre

    Rispondo perché ho partecipato direttamente alla discussione portata avanti in quel thread, e perché ho avuto modo anch'io di considerare il problema in modo più approfondito.

    Sebbene rimanga fedele alla mia linea di pensiero (marcare i form mediante elementi di tipo div), sono giunto alle tue stesse conclusioni.

    1. La semantica è, entro certi limiti, una questione soggettiva, esattamente come dici tu.
    2. Dibattere se una lista di definizioni sia più adatta rispetto ad una serie di div per ottenere lo scopo preposto non è molto utile, dal punto di vista della semantica; vale la pena invece dire: entrambe le soluzioni sono semanticamente valide, tuttavia l'una o l'altra si adatta meglio per il tipo di form che stiamo cercando di marcare.

    In parole povere, la semantica deve essere comunque applicata al contesto in cui stiamo lavorando: questo è un concetto che prescinde dal giusto, dal meno giusto, o dal totalmente sbagliato, è soltanto usare il buon senso di cui siamo (spero) dotati.

Discuti

Il blog è in sola lettura.

Paginatura: