The well-known acronym GIGO for “Garbage in, garbage out” [GIGO] refers to poor-quality input producing poor-quality output. The corollary for accessibility is that good accessibility in your output requires that the information necessary for that good accessibility needs to be present in your data. Chandi Perera of Typefi likens adding accessibility at the end to baking a cake and then trying to take the nuts out of the cake when serving because someone in the room has a nut allergy [Perera]. Trish Ang of Slack put it more simply: “it’s easier to add the blueberries in before you’ve baked the muffin.” [Ang]
Software, even the software doing the final formatting, can help by adding some of the accessibility information. In a JATS-List post, Bruce Rosenblum of Inera stated that his conversion software has “been setting scope attributes in JATS XML files for years for customers who need section 508 compliance and it's met their requirements.” [Rosenblum] However, relying on software at the end of the process to fulfil the letter, but not the spirit, of accessibility requirements can, to continue the food analogies, leave everyone with a bad taste in their mouth.
One of the best known accessibility requirements for web pages is to provide alternate text for images and links. Formatting software such AH Formatter can include alternate text when generating Tagged PDF output, but a formatter can only work with what’s in its XSL-FO or HTML input. The AH Formatter Online Manual notes “It is the FO/HTML creator’s responsibility to provide meaningful alternate text.” [TaggedPDF] Since the formatter can’t stop and ask for the input to be edited and then resume, so it has to take increasingly desperate steps to find alternate text to use for an element:
If the axf:alttext
property is present and not empty, its value is used.
Otherwise, if the element contains text, that text is used.
Otherwise, if the source is HTML and the element has a title
property, its value is used.
Otherwise, the value of the role
property, if present and not empty, is used.
Otherwise, a single space character (U+0020) is used.
The role
property is a poor alternative, since it is not designed for use as alternate text, and, obviously, a single space character is even less meaningful, but if the source document does contain meaningful accessibility information, then that accessibility information can be included in the output.