> From [PageWeave Design](https://pageweave-design.pageweave.site) — a working library for agentic web development. Full index: [llms.txt](https://pageweave-design.pageweave.site/llms.txt)

# Markdown Accessibility Patterns

Concrete patterns for serving humans and agents from one source: twins, indexes, and verification.

- Section: Build
- Tags: markdown agents llms-txt accessibility

Full markdown accessibility is four mechanisms working together. Each has a concrete pattern.

## 1. The twin pattern (template pages)

HTML body:

```liquid
{{ row.content | markdownify }}
```

Markdown body:

```liquid
{{ row.content }}
```

Same source, two renderings. The `.md` URL and `Accept: text/markdown` come free.

## 2. The transcription pattern (literal pages)

For pages authored directly (landing, about), write both bodies. The markdown version strips nav/chrome but preserves headings, links, and reading order. A good test: read the markdown aloud — does it stand alone as a document?

## 3. The index pattern (llms.txt)

Strict spec shape:

```
# PageWeave Design

> A working library of styles, themes, components, skills and prompts
> for agentic web development. Fully accessible via markdown.

Content is markdown-first: append .md to any URL below.

## Styles

- [Brutalist](https://site/styles/brutalist.md): raw typography, exposed grids
- [Editorial](https://site/styles/editorial.md): serif voices, hairline rules

## Optional

- [Changelog](https://site/changelog.md): release notes
```

H1 → blockquote → prose → H2 file-lists → Optional last. Keep it context-small.

## 4. The capability pattern (agenticweb.md)

YAML-flavored index of what the site OFFERS machines: content areas, JSON endpoints (`/t/{table_id}`), update cadence, contact paths.

## Verification loop

```bash
curl -s -H "Accept: text/markdown" https://site/page | head -20   # clean markdown?
curl -s https://site/page.md | md5                                 # identical to above?
curl -s https://site/llms.txt                                      # links resolve?
```

Final test: give an agent ONLY `/llms.txt` and ask three real questions about your content. Two hops to any answer or the index needs work.