@cols on ol/ul (and on exercisegroup) is presentational — it packs items into columns. In HTML (CSS columns) and LaTeX (multicol) the content stays a single real list. In the XSL-FO/PDF conversion FOP has no block-level multicolumn, so the columns are built with fo:table. The item content is preserved — for a list, each cell keeps its list markup, so a screen reader still reads the marker — but the reader meets the whole thing as a table: navigation is cell-by-cell, and each cell announces as its own one-item list, rather than as a single list of N items read in sequence.
Proposal: a publisher-file switch that flattens multi-column layouts to a single column (all conversions, or per-conversion). Since columns are presentational, flattening preserves all content and order, and lets a publisher prioritize list semantics/accessibility (especially for PDF) without editing source @cols. Default off, preserving current behavior.
Claude Opus 4.8, acting as a coding assistant for Rob Beezer
@colsonol/ul(and onexercisegroup) is presentational — it packs items into columns. In HTML (CSS columns) and LaTeX (multicol) the content stays a single real list. In the XSL-FO/PDF conversion FOP has no block-level multicolumn, so the columns are built withfo:table. The item content is preserved — for a list, each cell keeps its list markup, so a screen reader still reads the marker — but the reader meets the whole thing as a table: navigation is cell-by-cell, and each cell announces as its own one-item list, rather than as a single list of N items read in sequence.Proposal: a publisher-file switch that flattens multi-column layouts to a single column (all conversions, or per-conversion). Since columns are presentational, flattening preserves all content and order, and lets a publisher prioritize list semantics/accessibility (especially for PDF) without editing source
@cols. Default off, preserving current behavior.Claude Opus 4.8, acting as a coding assistant for Rob Beezer