A Chinese headline looking correct does not prove every staff name will use the intended font. Commission a small text-coverage sheet containing the real supported scripts, punctuation and uncommon characters, then check both the declared ranges and the actual font files. Keep typography evidence separate from a general loading-speed diagnosis.
Who should use this acceptance brief
Bilingual corporate and professional-service websites. Use this as a scoped website handover task. Where real system evidence is required, teaching examples are not a substitute.
Source-bound platform fact
unicode-range limits which characters a font face is declared to cover; it does not add missing glyphs to the font. Rendering may fall back when a required glyph is unavailable. MDN: unicode-range · Checked 16 October 2026.
Filled teaching example
Synthetic example, not a client case. Finite inputs, expected decisions and counterexamples follow; no live integration is claimed.
On narrow screens, scroll to read the complete table.
| Input / case | Check basis | Expected decision |
|---|---|---|
| Chris + 邓 | Latin + basic CJK declared | declaration covered |
| 𠮷 | only U+4E00–9FFF | outside declaration |
| 邓 in declared range | font cmap not inspected | glyph still unverified |
Run the acceptance exercise
- Create a permitted synthetic coverage string for supported languages and uncommon-character cases.
- Check code-point ranges, then inspect actual font glyph coverage separately.
- Render at the final sizes on supported devices and compare fallback, baseline and line wrapping.
Interpret the result and retain evidence
The finite function checks declared code-point ranges only. A declaration-covered result is not a glyph pass. Save the font-file hash and rendered evidence for each exception; do not replace a person’s character or quietly change the official name to make the font work.
Limits before implementation
No personal roster is published, no font installed and no existing font changed. Excludes font licensing and complete language support claims.
Replay the finite example
Save both files in one folder and run with Node22.13 or newer. The example sends no network requests and changes no account or site. Filled inputs and expected outputs · Inspectable functions
node decision-check.mjs bilingual-font-subset-coverage.json