Skip to content

Audit authored font-size basis before SVG text shaping #82

Description

@softmarshmallow

Why this exists

The stroke-width checklist rung (#80) found three authored-value mechanisms that can hide or poison a font-relative basis: basis-less relative units, var() indirection, and CSS escapes. Its patrol is deliberately stroke-scoped. The same mechanisms may reach the SVG text estate through computed font-size and therefore affect glyph metrics, but that possibility has not been measured or closed.

This issue preserves that open thread without making the dasharray or context-paint rungs own text conformance.

Current boundary

  • websem reads the computed font-size for <text> and passes its used px value into text resolution.
  • The The stroke-width rung: the twins' grammar celled, five silent spellings made refusals #80 font-size poison checks run only when resolving a font-relative stroke-width; absent such a width, they do not guard text shaping.
  • There is no text-specific refusal fixture, refusal-register row, or contract test for these three mechanisms.
  • This is a suspected silent-divergence class, not a measured defect yet. Records must not claim more until Chromium and the engine have been compared.

Required rung shape

  1. Probe Chromium and websem → rframe → n0 for authored font-size through the presentation attribute, inline style, and stylesheet ingresses.
  2. Cover at least basis-less relative units, var() indirection, and CSS escapes, with discriminating glyph-metric rasters rather than saturated or coincidental images.
  3. For every measured silent divergence, either supply the correct basis/resolution or convert the entire spelling class into a named, registered, guarded refusal in both admissions.
  4. Add committed Chromium-gated cells for admitted behavior and update the text statement of record precisely; mark probe-only findings as measured, not celled.
  5. Tick no font-size or related checklist row unless its full listed grammar meets the checklist bar.

Non-goals

  • Do not fold this into stroke-dasharray merely because dashes also consume lengths.
  • Do not change the text join or broaden rframe's text vocabulary.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions