ASP.NET e standard XHTML

di: Gianni Marzaloni     12 Dicembre 2007

Con l'avvento delle nuove regole dettate dalla W3C riguardo alla scrittura del codice XHTML, anche il Framework si è adeguato e già il passaggio dalla versione 1.x alla 2.0 ha segnato notevoli miglioramenti sulla compatibilità del codice generato.

Ad oggi, è possibile dire che la maggior parte dei controlli lato server .NET sono standard XHTML 1.0 e XHTML 1.1 previa qualche piccola considerazione che andremo ad approfondire nel corso di questo articolo.

Prima di iniziare però una precisazione: il fatto che i controlli siano al 100% compatibili XHTML 1.0 Transitional ma non XHTML 1.0 Strict e XHTML 1.1 non vuol dire che casa Microsoft abbia "fatto male le cose", anzi, la non conformità del codice è dettata da una retro compatibilità, offerta dal Framework, che dà la possibilità, a chi possiede vecchie versioni di browser, di utilizzare le nostre applicazioni Web senza problemi. Si tratta quindi solo di una configurazione di default, che può essere cambiata a proprio piacimento ed in ogni momento.

Ma quali sono i passi da fare per rendere compatibile il codice prodotto dai nostri controlli server? Il Framework mette a disposizione uno strumento veloce ed efficace, che vedremo in seguito, ma è necessario valutare il comportamento di alcuni controlli prima di proseguire.

Form

Ipotizziamo di voler standardizzare il nostro codice alla versione XHTML1.0 Strict, in questo caso il primo controllo a darci dei problemi sarebbe il tag form onnipresente nelle pagine ASPX:

Codice sorgente pagina ASPXCodice XHTML in output
<form id="form1" runat="server">
  ...
</form>
<form name="form1" method="post" action="Default.aspx" id="form1">
  ...
</form>

Una volta richiesta la pagina mediante browser, il codice fornito dal Framework contiene l'attributo name, non esistente per il tag <form>.

Image

Assicuriamoci di impostare sempre la proprietà AlternateText per il controllo Image. Se non popolata, nel codice risultante sarà omesso l'attributo alt, e quindi non conforme alle specifiche:

Codice sorgente pagina ASPXCodice XHTML in output
<asp:Image ID="Image1" runat="server" ImageUrl="immagine.jpg" /> <img id="Image1" src="imagine.jpg" />

Allo stesso modo ragiona la proprietà ImageUrl del controllo Image. L'attributo src è obbligatorio per il tag <img> e se non valorizziamo ImageUrl il tag non verrà considerato conforme. Mentre è necessario non utilizzare la proprietà ImageAlign perché genera un attributo align in fase di rendering.

Guide ASP.Net

Guida Windows Azure Code Snippets

Le migliori pratiche per far girare le applicazioni "in the cloud",...

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Amministratore di Reti Windows Server 2008

20 Febbraio 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto