Skip to content
§1.1

Requirements Language

What do MUST, SHOULD and MAY commit a producer to?

Read §1.1 in the RFC ↗

Requirement keywords

The key words MUST, MUST NOT, SHOULD, SHOULD NOT and MAY in this protocol are to be interpreted as described in RFC 2119 and RFC 8174 when, and only when, they appear in capitals.

In detail

Keyword Meaning A violation is
MUST / MUST NOT An absolute requirement of the protocol. an error: the output does not conform
SHOULD / SHOULD NOT A strong recommendation. Deviation is allowed only for a reason that holds for this document. a warning
MAY A truly optional behaviour. A consumer MUST accept output with or without it. never reported

The same words in lower case carry their ordinary English meaning and state no requirement.

Examples, sketches and captions are informative: they illustrate a requirement and never add one. Where an example and a requirement disagree, the requirement governs and the example is a defect.

Reading the examples. Each one pairs a source page with the output the rule expects. ✅ Sample: the rule applies. ❌ Counter-sample: it looks like it applies and does not, or a rendering got it wrong. A non-conforming output, in red, is shown only for contrast. … marks content left out of an excerpt.

The point, in a small example

What a broken MUST looks like. Each non-conforming output below drops printed content: the first swaps the text for an image link, the second summarises a table. Both violate a MUST, so a checker reports an error, not a warning. These pages are made up to isolate the rule.

01

✅ SampleConstructedThe rule applies

Text inside an image is still text

Transcribe all visible text, including the printed typo “Wednsday”. Do not substitute an image link, a summary or a corrected spelling. The top line is a notice label, not a document section.

Source page
Requirements Language — Text inside an image is still text. Source page.
Non-conforming output

What the rule rules out.

Markdown
![Delivery notice](notice.png)
Expected output
Markdown
Delivery notice

Arrives Wednsday at 09:30.

Gate B — keep this slip.
Requirements Language · Source page

Text inside an image is still text

Requirements Language — Text inside an image is still text. Source page.
02

✅ SampleConstructedThe rule applies

A pictured table stays a table

The image contains a two-column table. Preserve both rows and the printed headers; a prose summary loses the cell relationships.

Source page
Requirements Language — A pictured table stays a table. Source page.
Non-conforming output

What the rule rules out.

Markdown
A table listing stationery supplies.
Expected output
Markdown
<table>
<tr><th>Item</th><th>Count</th></tr>
<tr><td>Pencils</td><td>12</td></tr>
<tr><td>Pens</td><td>7</td></tr>
</table>
Requirements Language · Source page

A pictured table stays a table

Requirements Language — A pictured table stays a table. Source page.