diff options
| author | Ralph Amissah <ralph.amissah@gmail.com> | 2026-09-13 21:56:43 -0400 |
|---|---|---|
| committer | Ralph Amissah <ralph.amissah@gmail.com> | 2026-09-14 12:18:51 -0400 |
| commit | eb5a9f3dab1d1848a1aa90c534a125c222327635 (patch) | |
| tree | 92e53a0c8cf7c3d3dddef14d82730cdf99b6e4b9 /src/sisudoc/ocda/meta/metadoc_from_src_functions.d | |
| parent | epub and html: no errors left over the sample set (diff) | |
images alt text, and epub says what it is
Four things, not visible in an error count:
- Images had no alt text, even where markup carried the text, and the
field alt text is present, incorrectly used in code; fixed as the alt.
{ sm_tux.png 64x80 "Gnu/Linux - a better way" }image
an image with nothing to say for itself gets alt=""
- Images with no dimensions were incorrectly written width="0"
height="0", fixed
- Accessibility metadata, which EPUB Accessibility 1.1 requires:
schema:accessMode, accessibilityFeature and accessibilityHazard, plus
accessModeSufficient and accessibilitySummary, which epubcheck does
not test for; used by
- readers looking for a book it can use,
- anyone distributing into the EU.
Every value is derived from the document, not asserted: a document
with no images says so, one whose images all carry alt text claims
alternativeText and textual sufficiency, one where an image says
nothing claims neither.
Nothing claims WCAG conformance, which would be a claim about an
evaluation that has not happened.
- DPUB-ARIA roles beside the structure spine already knew about.
doc-toc, doc-endnotes, doc-bibliography, doc-glossary and doc-index on
the sections, doc-noteref on a note reference and doc-footnote on the
note it points at. "doc_endnotes" as a class name means something to a
stylesheet and nothing to a reading system. Not doc-biblioentry: DPUB-
ARIA 1.1 deprecated it. These are plain ARIA, so the html gets them
too.
Also dealt with here:
- Spine makes certain sections such as endnotes, bookindex, ... and a
heading that has a name for itself cannot share the same name, if it
does the name is now disambiguated, disambiguated. (disambiguation
similar to that used for a repeated anchor tag)
- Endnote anchors fixed to use "id" (being one unique tag in the
document that is target of every reference to it)instead of obsolete
form (they were <a name="note_1">. "name" on an <a>).
Book index markers keep "name": the same marker sits on every object
an entry names, 296 times in one document, and those are markers of
where a term occurs rather than distinct targets.
(assisted by Claude-Code)
Diffstat (limited to 'src/sisudoc/ocda/meta/metadoc_from_src_functions.d')
| -rw-r--r-- | src/sisudoc/ocda/meta/metadoc_from_src_functions.d | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/sisudoc/ocda/meta/metadoc_from_src_functions.d b/src/sisudoc/ocda/meta/metadoc_from_src_functions.d index 08ee22c..0deeb72 100644 --- a/src/sisudoc/ocda/meta/metadoc_from_src_functions.d +++ b/src/sisudoc/ocda/meta/metadoc_from_src_functions.d @@ -67,6 +67,27 @@ template docAbstractionFunctions() { string anchor_tag_; string[string] tag_in_seg; bool[string] _heading_anchor_tags_seen; + /+ ↓ the segment names spine makes for itself, which a heading in the + document may not also claim. + . + A document that writes "1~endnotes Endnote" asks for the name spine + gives the gathered endnotes. Both then wrote into endnotes.xhtml, + and the navigation listed that file twice, the second time behind + its own previous entry in reading order. Seeding the seen set with + these names means the document's heading is disambiguated the same + way a repeated anchor tag is, and the generated section keeps the + name that the table of contents links to. + +/ + bool[string] _reserved_heading_anchor_tags() { + bool[string] _reserved; + foreach (_name; [ + "toc", "endnotes", "glossary", "bibliography", "bookindex", "blurb", + "_the_title", + ]) { + _reserved[_name] = true; + } + return _reserved; + } string lev_anchor_tag; string[string][string] tag_assoc; string[] lv0to3_tags; |
