Skip to content
SilktideHelp

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

  1. 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.
  2. 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

  1. Work through each page's elements, skipping content already inside list markup.
  2. 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.
  3. Separately, report tables that have only one column and contain text, as lists disguised as tables.

Troubleshooting

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.

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.

Learn more

Last updated

Was this page helpful?