PDA

View Full Version : [ASP.NET MVC2] Form Accessibile


DioBrando
22-12-2010, 09:38
Buondì.

Sto ridefinendo il template delle view dell'applicazione prossima ad andare in produzione e mi trovo davanti ad un dilemma.

A quanto mi ricordi dagli studi universitari e cercando anche sul web, il form accessibile nella classica accoppiata XHTML+CSS prevede l'uso delle liste, dei fieldset e legend per favorire la fruizione anche da lettori di schermo&co. (e quindi non inficiare chi è affetto da disabilità varie).
Si tratta di una form da 2, 3 massimo "colonne".
In MVC, empiricamente, non siamo riusciti a dare la classe per lo stile direttamente alla LabelFor.
L'unico modo è stato inserirla all'interno di uno span.

Codice:
<fieldset class="formfieldset">
<ol>
<li>
<span class="editor-label">
<%= Html.LabelFor(c => c.Model.ComuneNascita) %>
</span>

La textbox corrispondente invece lo contempla:
<%= Html.EditorFor(c => c.Model.ComuneNascita, new { @readonly = true, @class = "editor-field" })%>
<%= Html.ValidationMessageFor(c => c.Model.ComuneNascita) %>
</li>

Il problema è che il posizionamento risulta scazzato (per usare un termine tecnico)

http://img84.imageshack.us/img84/4695/form2.jpg (http://img84.imageshack.us/i/form2.jpg/)

Come diavolo lo incolonno correttamente (da CSS logicamente).
Senza posizionamenti assoluti perché non voglio vincolarmi alla risoluzione del browser.


Ci sarebbero due soluzioni alternative:

1) 2 div, uno per la label, uno per la textbox (ma dentro una lista non è il massimo)
2) la classica tabella tr/td che vorrei davvero evitare


Suggerimenti?

Ludo237
22-12-2010, 10:13
io il problema cosi lo risolverei in questo modo

creo una tabella a due colonne

colonna 1 con

riga 1 cognome

riga 2 nome

colonna 2 con

riga 1 cognome_textbox

riga 2 nome_textbox

e poi allinei il contenuto della colonna 1 a destra cosi sembra attaccato alle textbox

esistono altri modi , usati da chi ritiene le tabelle "obsolete" , ma secondo me per fare i form le tabelle sono ancora un valido strumento (per molte altre cose sono veramente obsolete).
alla fine anche tu hai dichiarato che saranno 3/4 colonne , non vedo perchè non usare le tabelle