Accessibility Wiki

Type 1 CharSet must list every embedded glyph

PDF/UA check FONT_CHARSET_COMPLETE · Fonts & text encoding · severity Medium · PDF/UA 8.4.5.5 Embedding · advanced check

↩ Back to the rules index · WCAG cross-reference

Advanced check. This is a file-internals rule. It is hidden from the standard report view and generally indicates a problem with the tool that produced the PDF rather than something an author did.

Why it matters

An incomplete CharSet declaration misrepresents what the embedded font subset contains, which can break PDF/A validation chains.

What you will see

A Type 1 font descriptor declares a CharSet that does not match the glyphs actually present in the embedded subset.

How to fix

Regenerate the CharSet string in the Type 1 font descriptor so it lists exactly the glyphs present in the embedded font program - no missing names and no extra names. Re-subsetting the font with a current tool rebuilds it correctly; removing the CharSet entry entirely also resolves the mismatch.

Step-by-step guide

  1. Identify the flagged Type 1 (or Multiple Master) fonts whose FontDescriptor carries a CharSet string that does not match the glyphs actually present in the embedded font program.
  2. Simplest compliant fix: delete the CharSet entry from the FontDescriptor. CharSet is an optional, purely declarative entry, and the check passes when it is absent.
  3. To keep the entry instead, re-subset the font so the regenerated CharSet lists exactly the glyph names present in the embedded font program - no missing names and no extras; the check fails in both directions.
  4. In Acrobat Pro you can try All tools > Use print production > Preflight > PDF fixups > Subset all embedded fonts, which rewrites embedded font subsets and their descriptor entries; verify afterwards and, if the mismatch persists, regenerate the file from its source (next step).
  5. Where the document can be regenerated, re-export from the authoring application with current software - stale CharSet strings typically come from outdated subsetting in older PDF producers.

Verify: Re-run the EQChecker advanced scan and confirm FONT_CHARSET_COMPLETE reports zero errors. PDF/UA-2 clause 8.4.5.5 does not itself name CharSet - CharSet accuracy is subset hygiene aligned with PDF/A - so Acrobat's Preflight PDF/A verification is the closest external cross-check. Rendering is unaffected either way, so a visual spot check suffices.

Note: CharSet is informational only - removing it loses nothing for accessibility or rendering, while an inaccurate one misrepresents the subset. PDF/UA-2 clause 8.4.5.5 requires the embedded subset to define all referenced glyphs; the CharSet accuracy test is stricter subset hygiene aligned with PDF/A. Acrobat has no direct editor for FontDescriptor entries, so if the Preflight fixup does not clear the mismatch, regenerate the file from its source.

WCAG success criteria

No WCAG success criterion maps cleanly to this check — it is a PDF/UA structural requirement. The PDF/UA clause above is the normative reference.

Standards

This check contributes to the following standards:

PDF/UA

Standard Criteria
PDF/UA-2 (ISO 14289-2:2024) 8.4.5.5 Embedding