È conforme a HTML5 XHTML 1.0?

7

Per un incarico scolastico, ho scritto una pagina web in HTML5.

Dopo aver controllato nuovamente i requisiti del compito, ho trovato la riga:

• a minimum of three HTML pages complying with at least XHTML 1.0 standards or (better).

Preferirei non aver bisogno di aggiungere tutti i brutti tag nella parte superiore della pagina e modificare tutti i miei significativi <header> e <nav> tag in generico <div> s, quindi ho provato a convalidarlo.

In base al validatore W3C , il mio sito si ritira quando lo imposto per convalidarlo come XHTML 1.0

Secondo Validome , tuttavia, non è valido e mi dà errori per la mancanza di attributi appropriati nella parte superiore e errori per ognuno dei tag HTML5 che ho usato.

Questo mi lascia con la domanda:

HTML5 è almeno conforme a XHTML 1.0?

La pagina:

<!DOCTYPE html>
<html>
<head>
    <title>Brendon's Uromastyces Fact Site</title>
    <meta charset="utf-8">
</head>

<body>
    <div id="mainBody">
        <section>

            <header>
                <h1>Brendon's Uromastyces Fact Site</h1>
            </header>
            <h2>
                Welcome to my site dedicated to providing reliable, referenced information about Uromastyces.
            </h2>
            <p>
                My goal in creating this site was to allow fast access to the most important information surrounding
                Uromastyces. Especially regarding issues like the choice of substrate (the bedding that lines the
                bottom of the cage), there is a lot of contradictory information, which can be overwhelming for
                someone new to reptile keeping.
            </p>
            <p>
                Below, as well as to your left, are navigation bars you can use to explore each of the site's main
                topics: information relating to <em>Enclosures</em>, <em>Diet</em>, and general information about
                their <em>Behavior and Life</em>.
            </p>

            <nav class="navBar">
                <ul>
                    <!--    Only 3 of the links are currently valid: "Home" (this page; sample1.html), "Enclosure"
                            (sample2.html fixed up), and "About Me" (the third required page for the exercise)-->
                    <li><a href="sample1Fixed.html">Home</a></li>
                    <li><a href="sample2Fixed.html">Enclosure</a></li>
                    <li><a href="diet.html">Diet</a></li>
                    <li><a href="behaviorAndLife.html">Behavior and Life</a></li>
                    <li><a href="page3.html">About Me</a></li>
                </ul>
            </nav>


        </section>

    </div>

    <aside class="sideBar">
        <!--    This image is currently pretty big. Once I have access to CSS, I can have it automatically adjust the
                size. The width/height attributes seem to be considered deprecated (http://www.tutorialspoint
                .com/html/html_deprecated_tags.htm) in favor of using CSS. I'll have this adjust itself according to
                the screen size down the road to accommodate small screens. My goal will be to have the width of the
                nav bar == the width of the image, and have the height adjusted automatically.-->
        <img src="pascal-cropped-shrunk.jpg" alt="Picture of Pascal">
        <!--    Without being able to do any styling, this is going to sit below the main content body, when ideally it
            would float to the left-->
        <nav class="navBar">
            <ul>
                <!--    Unfortunately, this is copy-and-pasted from above. I'm not sure the best, most maintainable solution
                         would be at this point. If a link is updated, or the menu is changed, I want to ensure that all
                         menus reflect the change.
                         Down the road, I may generate the menus using JS (along with other content that doesn't vary
                          between pages), but that's not an option right now.
                         Also, since I can't arrange the elements yet, both of the nav menus are immediately on top of
                         each other, which is redundant. Later on, one will be a nav bar on the left, and the other a
                         quick access nav bar underneath the site introduction.-->
                <li><a href="sample1Fixed.html">Home</a></li>
                <li><a href="sample2Fixed.html">Enclosure</a></li>
                <li><a href="diet.html">Diet</a></li>
                <li><a href="behaviorAndLife.html">Behavior and Life</a></li>
                <li><a href="page3.html">About Me</a></li>
            </ul>
        </nav>

    </aside>


</body>
</html>

Solo un aggiornamento:

La pagina sopra è stata accettata. Ho finito per usare JS per generare la pagina, ma il risultato finale era quasi lo stesso.

    
posta Carcigenicate 05.12.2015 - 17:03
fonte

3 risposte

14

Is HTML5 at least XHTML 1.0 compliant?

No .

Se intendi nel senso che HTML5 valido è necessariamente XHTML 1.0 , allora questo chiaramente falso: HTML5 consente i tag unclosed per molti elementi, come img, br , hr, che in un DOM verrebbe interpretato più o meno allo stesso modo dei tag XHTML autochiudenti .

Nel tuo documento, ad esempio, <meta charset="utf-8"> è un tag non chiuso - legittimo in HTML5 ma non XHTML 1.0.

I documenti XHTML devono essere documenti XML, ma i documenti HTML4 / 5 non devono essere XML validi, anzi parte della genesi di HTML5 consisteva nell'evitare di richiedere questo tipo di conformità con XML.

Inoltre, HTML5 introduce nuovi elementi non presenti in XHTML 1.0.

According to the W3C validator, my site checks out when I set it to validate it as XHTML 1.0

Quando utilizzo lo strumento nell'HTML che hai fornito, il validatore dice che ci sono 16 errori. Potresti aver consentito al validatore di rilevare il doctype, che lo avrebbe convalidato come HTML5.

Se intendi nel senso che XHTML valido è necessariamente HTML5 , questo anche non è il caso, come alcuni elementi, come tt e big non è più valido in HTML5 e alcuni attributi hanno valori e / o significati modificati. Puoi trovare utile questo documento (anche se si riferisce a HTML4 piuttosto che XHTML).

L'unica cosa che si può dire è esiste un sottoinsieme di HTML5 e XHTML che può esistere in entrambi i documenti . Questo sottoinsieme sembra più simile a XHTML, meno alcune funzionalità meno recenti di HTML5. Anche in questo caso, poiché sia XHTML 1.0 che HTML5 hanno aspettative su come vengono "introdotti" (ad esempio doctype, ecc.), Ci sono poche o eventuali opzioni per inviare interi documenti che siano veramente conformi ad entrambi.

Se vuoi soddisfare il criterio "conforme almeno agli standard XHTML 1.0 o (meglio) [sic].", e non sei in grado di chiarire se HTML5 è accettabile, se fossi in te, lo interpreterei come Solo XHTML 1.0 o 1.1. Versione 2.0 esiste solo come bozza di un editor / 'working group note' e il gruppo di lavoro su questo è stato chiuso .

    
risposta data 05.12.2015 - 18:19
fonte
6

HTML5 ha una serializzazione XML, che è esattamente gli stessi elementi e semantica di HTML5, solo con una sintassi compatibile con XML.

XHTML5 non è esattamente conforme a XHTML 1.0, ma è migliore di XHTML 1.0 e dovrebbe quindi essere adatto al tuo scopo. (Ovvio a seconda della definizione di "migliore", ma nel contesto delle versioni in genere significa solo una versione più recente o un consiglio, che è HTML5.)

In altre parole, dovresti stare bene usando elementi specifici di HTML5 come <header> , a patto di assicurarti di usare la sintassi XML (tutti i tag chiusi e così via).

La tua <meta charset="utf-8"> ad esempio dovrebbe essere <meta charset="utf-8" /> .

    
risposta data 05.12.2015 - 17:41
fonte
0

XHTML è uno schema XML con tag HTML. Qualsiasi documento XML deve iniziare con una dichiarazione <?xml ... , quindi il tuo esempio non è XML e non XHTML.

HTML5 e XHTML 1.0 sono compatibili nel senso che puoi passare facilmente da XHTML a HTML5 cambiando solo il doctype, ma non viceversa. In particolare:

  • HTML5 ha una sintassi più liberale. Non richiede che alcuni tag vengano chiusi. Per esempio. hai un tag <img> e <meta> non terminato. In XML, i tag vuoti possono essere scritti come <img ... /> .
  • HTML5 include molti tag che non sono presenti nello standard XHTML precedente. IIRC, gli elementi section , header , aside , nav non sono definiti in XHTML 1.0.
risposta data 05.12.2015 - 17:21
fonte

Leggi altre domande sui tag