Search code examples
epubnested-listsxhtml-1.0-strict

Nested lists in strict XHTML1.0 for ebook invalid


I am working on an ebook that contains many nested lists (both OL and UL) and one page is not valid. I wish to keep them as lists for semantic and organizational reasons. Here's the format I am going for:

  1. Question

    • Subquestion
    • Subquestion

Paragraph explaining answers

  1. Question

    • Subquestion
    • Subquestion

Paragraph explaining answers

H2 Section break

  1. Question

    • Subquestion
    • Subquestion

Paragraph explaining answers

  1. Question

    • Subquestion
    • Subquestion

Paragraph explaining answers

And my abbreviated code:

<ol>
    <li>Question 1
     <ul>
      <li>subquestion</li>
      <li>subquestion</li>
     </ul>
    </li>
    <p>Paragraph explaining answers</p>

    <li>Question 2
     <ul>
      <li>subquestion</li>
      <li>subquestion</li>
     </ul>
    </li>
    <p>Paragraph explaining answers</p>

<h2>Section break</h2>

    <li>Question 3
     <ul>
      <li>subquestion</li>
      <li>subquestion</li>
     </ul>
    </li>
    <p>Paragraph explaining answers</p>

    <li>Question 4
     <ul>
      <li>subquestion</li>
      <li>subquestion</li>
     </ul>
    </li>
    <p>Paragraph explaining answers</p>

</ol>

Now this looks great in-browser, except I get an tag mismatch error on the last line (the closing ol tag), preventing anything after the ordered list from displaying. I am not allowed to break format (ie put all paragraphs at the end of the OL) and would rather not simply use numerals for the OL.

Are paragraph and header tags not allowed nested inside lists? Is there a workaround to keep numbering and formatting consistent? Thanks for your help!


Solution

  • You can't put anything in an ol but li as detailed here. You would be best off doing it like this:

    <ol>
        <li>Question 1
         <ul>
          <li>subquestion</li>
          <li>subquestion</li>
         </ul>
        </li>
    </ol>
        <p>Paragraph explaining answers</p>
    
    <ol>
        <li>Question 2
         <ul>
          <li>subquestion</li>
          <li>subquestion</li>
         </ul>
        </li>
    </ol>
        <p>Paragraph explaining answers</p>
    
        <h2>Section break</h2>
    
    <ol>
        <li>Question 3
         <ul>
          <li>subquestion</li>
          <li>subquestion</li>
         </ul>
        </li>
    </ol>
        <p>Paragraph explaining answers</p>
    
    <ol>
        <li>Question 4
         <ul>
          <li>subquestion</li>
          <li>subquestion</li>
         </ul>
        </li>
    </ol>
        <p>Paragraph explaining answers</p>