Semantic links
Silktide looks for groups of links that behave like a menu or navigation section but are not marked up as a list. It also finds single-column tables being used to lay out what is really a list of items.
Groups of related links - menus, footers, "related pages" blocks - should be written as lists in , so their structure is explicit:
<!-- Problem: a navigation block with no structure -->
<a href="\/about">About us</a>
<a href="\/products">Products</a>
<a href="\/contact">Contact us</a>
<!-- Fixed: the links are items in a list -->
<ul>
<li><a href="\/about">About us</a></li>
<li><a href="\/products">Products</a></li>
<li><a href="\/contact">Contact us</a></li>
</ul>
Why this matters
When links are in a list, a announces the group and its size, and the listener can skip the entire group in one step - essential when the same navigation repeats on every page. Links written loose offer no such shortcut: a visitor may have to step through dozens or hundreds of links one by one before reaching the content, on every single page they visit.
How to fix it
- Wrap each group of related links in a
<ul>(or<ol>where order matters), with each link in its own<li>. For navigation, also wrap the list in a<nav>element so it is announced as navigation. - Replace single-column tables with a list - a table with one column has no tabular relationships, and list markup describes it better:
<!-- Problem: a one-column table used as a list -->
<table>
<tr><td>Banana</td></tr>
<tr><td>Apple</td></tr>
</table>
<!-- Fixed -->
<ul>
<li>Banana</li>
<li>Apple</li>
</ul>
How Silktide tests this
- Work through each page's elements, skipping content already inside list markup.
- Report an element containing three or more links in a row with less than 30 characters of other text between them - a strong sign of a menu or link group. Blocks interrupted by content such as paragraphs, headings, or images are not considered link groups.
- Separately, report tables that have only one column and contain text, as lists disguised as tables.
Troubleshooting
My links are separated by real content
Silktide stops considering a block as navigation when it contains substantial text or content elements between the links. If a flagged group genuinely reads as prose rather than a menu, you can the finding.
Inline links in a sentence
Links that flow within a sentence should not be in a list. This check tolerates short runs of text between links, but if a sentence of linked phrases is flagged, approve it.