diff --git a/layouts/shortcodes/instruction.md b/layouts/shortcodes/instruction.md
index 0e9b44f..d023373 100644
--- a/layouts/shortcodes/instruction.md
+++ b/layouts/shortcodes/instruction.md
@@ -13,6 +13,11 @@ formats, encoding diagram, high-level operation, and usage examples.
@param {string} encoding-dark Optional dark mode variant of the encoding
diagram. If set, `encoding` is only shown in
light mode and this is shown in dark mode.
+@param {string} encoding-bits Optional accessible bit-level breakdown of the
+ encoding, for screen readers and crawlers. Use
+ lines of "bits:value:meaning", one per row.
+ Separate multiple variants with a line
+ containing only "---".
@param {string} operation High-level operation, typically pseudo-C. Use a
backtick-quoted string for multiple lines.
@param {string} examples Usage examples in LC-2 assembly. Use a
@@ -54,6 +59,7 @@ result is negative, zero, or positive.
{{- $formats := .Get "formats" -}}
{{- $encoding := .Get "encoding" -}}
{{- $encodingDark := .Get "encoding-dark" -}}
+{{- $encodingBits := .Get "encoding-bits" -}}
{{- $operation := .Get "operation" -}}
{{- $examples := .Get "examples" -}}
{{- $description := .Inner -}}
@@ -88,6 +94,24 @@ Sligtly edited version of Hextra's `details` shortcode
{{ end }}
+{{ if $encodingBits }}
+{{ $variants := (split $encodingBits "---") }}
+{{ $html := printf "
| Bits | Value | Meaning |
|---|---|---|
| %s | %s | %s |