Al momento stiamo discutendo un po 'in ufficio sull'utilizzo di CSS per riordinare visivamente gli elementi sulla pagina.Ragioni per non utilizzare i CSS per riordinare visivamente l'ordine degli elementi HTML
Su un livello di base, un membro del nostro team vuole strutturare il codice HTML come questo (la richiesta si basa esclusivamente su una prospettiva di progettazione)
<div class="secondary-content">
<h2>Secondary content heading</h2>
<p>This is the secondary content</p>
</div>
<div class="main-content">
<h1>Main heading</h1>
<p>This is the main content</p>
</div>
e poi usare i CSS per posizionare visivamente il main-content
div prima dello secondary-content
uno.
Ora, non sto chiedendo aiuto su come avremmo tecnicamente ottenuto questo, ma più sto cercando prove per sostenere l'argomento che noi non dovremmo fare lo.
Come dev front-end, le mie preoccupazioni intial sono circa l'accessibilità
- I lettori di schermo/tecnologie assistive colpirà il primo
secondary-content
. Per me, è come aprire un libro, a partire dal capitolo 4 e tornare indietro e leggere i capitoli 1, 2, 3, 5, 6 ecc. - La struttura di intestazione della pagina sarà disgiunta (H2 prima di H1 ecc.)
- Se non v'è alcun contenuto in
secondary-content
che richiede informazioni damain-content
al fine di essere compreso, sarà fonte di confusione per gli utenti con i CSS off/tecnologie di assistenza etc
Tuttavia, il pulsante caldo reale per le persone nel business è Google/SEO. Pertanto, qualcuno conosce argomenti/articoli validi sul perché scrivere HTML in modo non strutturato avrebbe un impatto negativo sul nostro SEO?
Un div non ha alcun significato semantico, preferisco usare i tag di sezione e di lato (purtroppo questi sono tag HTML5) –
html5 il supporto per ii può essere fatto con http://code.google.com/p/html5shiv/ – DGM
È meno circa il significato semantico dei div e molto altro riguarda il posizionamento del contenuto secondario (e H2 associato) prima del contenuto principale (e H1) nell'HTML. Forse avrei dovuto essere più chiaro, mi dispiace. –