Dunque, come prospettava giustamente salasir, la prima cosa da fare è realizzare una struttura di markup consona ad un form realizzato a regola d'arte, ovvero comprensivo anche degli accorgimenti riguardanti l'accessibilità. Il tutorial segnalato è probabilmente il migliore in circolazione.

Per quanto riguarda la domanda chiave della discussione, ovvero la semantica (da intendere come 'logicità della struttura'), i pareri saranno personali. Di seguito il mio.

Una lista racchiude in sè svariati elementi, i quali però sono collegati da un criterio comune. Nel caso prospettato, a parer mio, nè una ul nè una ol sono appropriate. Le vedrei bene, eventualmente, nel caso di checkbox o radio:

codice:



Quale sport preferisci?</p>
<ul>[*]
      <input id="sport_calcio" name="sport" type="radio" value="calcio" /> 
      <label for="sport_calcio">calcio</label>
   [*]
      <input id="sport_nuoto" name="sport" type="radio" value="nuoto" /> 
      <label for="sport_nuoto">nuoto</label>
   [*]
      <input id="sport_golf" name="sport" type="radio" value="golf" /> 
      <label for="sport_golf">golf</label>
   [/list]
In sostanza, già utilizzando a dovere tutti gli strumenti di markup di un form (fieldset, legend, label e via dicendo - vedi il tutorial), semantica e funzionalità sono raggiunte.

Secondo me sono domande cui vale la pena porsi, anche perchè definita una soluzione una volta, non serve più pensarci.

Con l'introduzione di XForms, la semantica (intesa sempre come 'logicità') arriverà a livelli ancora più sofisticati ed affascinanti, pertanto è ancora più importante interrogarsi sul giusto modo di operare.