inline-text — 100.00% verified visual parity

← all categories · PASS 51 · FAIL 0 · REFERENCE-DISPUTED 1 · 52 total · 300 DPI

diff colours:MissingExtraColorErrMatchFull-page diff: matching and per-channel ≤1.0% pixels are blank; coloured classes are same-coordinate above-floor evidence. Exact RGBA mismatch remains numeric.

text-decoration-style:wavy — 0.00% verified visual parity PASS 0 · FAIL 0 · REFERENCE-DISPUTED 1all categories ↑

REFERENCE-DISPUTED 5332 px · above-floor 2.05% · raw 2.05% max-page diff inline-text-text-decoration-wavy · text-decoration-wavy · REFERENCE DISPUTEDMissingmissing 21.9%extra 9.4%ΔE 12.5
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
why: candidate lacks paint present in reference (21.9%)
A large underlined word requests a red wavy underline instead of the default solid rule. Catches: Painting every decoration as a straight solid line passes simple underline tests but misses style geometry. The exact Chrome waveform is retained as compatibility evidence, not a required curve.
reference dispute: CSS Text Decoration 4 section 2.2 requires only a wavy line, not Chrome's wavelength, amplitude, or jagged curve; Ironpress and WeasyPrint render different smooth waves.
regions (199 total; showing 64 representatives)

Complete component census grouped by dominant raster class; representative details are bounded.

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
Missing1928700,27 → 93,37282total 8.4% · largest 0.8%
ColorErr16114030,28 → 93,36128total 4.1% · largest 0.4% · max ΔE 45.3
Extra1910590,28 → 89,36157total 3.1% · largest 0.5%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
Missing29,31 → 38,370.8candidate lacks paint present in reference (0.8%)
Missing45,31 → 52,370.8candidate lacks paint present in reference (0.8%)
Missing59,31 → 68,370.8candidate lacks paint present in reference (0.8%)
Missing51,27 → 59,330.7candidate lacks paint present in reference (0.7%)
Missing15,31 → 25,370.7candidate lacks paint present in reference (0.7%)
Missing37,27 → 45,320.7candidate lacks paint present in reference (0.7%)
Missing24,27 → 31,330.7candidate lacks paint present in reference (0.7%)
Missing72,31 → 83,370.6candidate lacks paint present in reference (0.6%)
Missing0,31 → 11,370.6candidate lacks paint present in reference (0.6%)
Missing66,27 → 72,330.5candidate lacks paint present in reference (0.5%)
Missing10,27 → 17,330.5candidate lacks paint present in reference (0.5%)
Extra52,31 → 58,360.5candidate adds paint absent from reference (0.5%)
Missing79,27 → 89,330.4candidate lacks paint present in reference (0.4%)
Extra39,32 → 44,360.4candidate adds paint absent from reference (0.4%)
Extra31,28 → 37,320.4candidate adds paint absent from reference (0.4%)
Extra45,28 → 51,320.4candidate adds paint absent from reference (0.4%)
Extra25,31 → 29,360.4candidate adds paint absent from reference (0.4%)
ColorValue12,31 → 18,360.4ΔE 5.0 ΔRGB(-11,-61,-54)fill recolour ΔRGB(-11,-61,-54) (ΔE 5.0)
ColorValue58,28 → 66,330.3ΔE 1.5 ΔRGB(-15,-79,-70)fill recolour ΔRGB(-15,-79,-70) (ΔE 1.5)
Extra60,28 → 65,320.3candidate adds paint absent from reference (0.3%)
Extra18,28 → 22,320.2candidate adds paint absent from reference (0.2%)
AntialiasCoverage72,28 → 76,310.2ΔRGB(-3,-26,-22)antialiasing coverage residue on a shared outline
ColorValue68,30 → 70,340.2ΔE 45.3 ΔRGB(-13,-75,-67)fill recolour ΔRGB(-13,-75,-67) (ΔE 45.3)
Extra68,31 → 72,360.2candidate adds paint absent from reference (0.2%)
ColorValue37,30 → 40,340.2ΔE 45.3 ΔRGB(-13,-75,-67)fill recolour ΔRGB(-13,-75,-67) (ΔE 45.3)
ColorValue43,31 → 45,350.2ΔE 5.0 ΔRGB(-11,-61,-54)fill recolour ΔRGB(-11,-61,-54) (ΔE 5.0)
Missing0,28 → 4,330.1candidate lacks paint present in reference (0.1%)
Missing90,35 → 93,370.1candidate lacks paint present in reference (0.1%)
Missing90,29 → 93,330.1candidate lacks paint present in reference (0.1%)
ColorValue28,33 → 32,360.1ΔE 1.3 ΔRGB(-4,-23,-21)fill recolour ΔRGB(-4,-23,-21) (ΔE 1.3)
AntialiasCoverage83,31 → 85,340.1ΔRGB(-5,-28,-25)antialiasing coverage residue on a shared outline
AntialiasCoverage20,29 → 23,320.1ΔRGB(-12,-66,-59)antialiasing coverage residue on a shared outline
ColorValue52,32 → 54,340.1ΔRGB(-7,-38,-33)fill recolour ΔRGB(-7,-38,-33) (ΔE 0)
ColorValue17,32 → 20,330.1ΔRGB(-15,-79,-70)fill recolour ΔRGB(-15,-79,-70) (ΔE 0)
ColorValue0,33 → 3,360.1ΔE 1.3 ΔRGB(-1,-7,-6)fill recolour ΔRGB(-1,-7,-6) (ΔE 1.3)
ColorValue58,31 → 59,330.1ΔRGB(-11,-61,-54)fill recolour ΔRGB(-11,-61,-54) (ΔE 0)
ColorValue90,33 → 92,360.1ΔE 1.3 ΔRGB(-1,-7,-6)fill recolour ΔRGB(-1,-7,-6) (ΔE 1.3)
AntialiasCoverage88,31 → 89,330.09ΔRGB(-11,-61,-54)antialiasing coverage residue on a shared outline
AntialiasCoverage65,35 → 68,360.09ΔRGB(-1,-15,-12)antialiasing coverage residue on a shared outline
ColorValue24,31 → 25,330.09ΔRGB(-13,-75,-67)fill recolour ΔRGB(-13,-75,-67) (ΔE 0)
ColorValue44,29 → 46,300.08ΔRGB(-32,-172,-155)fill recolour ΔRGB(-32,-172,-155) (ΔE 0)
AntialiasCoverage77,32 → 80,330.08ΔRGB(-15,-79,-70)antialiasing coverage residue on a shared outline
ColorValue80,35 → 83,360.07ΔE 2.7 ΔRGB(-1,-15,-12)fill recolour ΔRGB(-1,-15,-12) (ΔE 2.7)
Extra75,28 → 77,300.07candidate adds paint absent from reference (0.07%)
Extra85,31 → 88,320.06candidate adds paint absent from reference (0.06%)
Extra11,31 → 12,330.06candidate adds paint absent from reference (0.06%)
AntialiasCoverage23,28 → 24,290.06ΔRGB(-24,-133,-119)antialiasing coverage residue on a shared outline
AntialiasCoverage7,29 → 8,300.06ΔRGB(-30,-168,-150)antialiasing coverage residue on a shared outline
AntialiasCoverage3,32 → 5,330.06ΔRGB(-12,-59,-52)antialiasing coverage residue on a shared outline
AntialiasCoverage30,31 → 32,320.06ΔRGB(-11,-61,-54)antialiasing coverage residue on a shared outline
AntialiasCoverage8,28 → 9,290.05ΔRGB(-24,-133,-119)antialiasing coverage residue on a shared outline
ColorValue36,29 → 37,300.05ΔRGB(-30,-168,-150)fill recolour ΔRGB(-30,-168,-150) (ΔE 0)
AntialiasCoverage5,30 → 6,320.05ΔRGB(-12,-66,-59)antialiasing coverage residue on a shared outline
AntialiasCoverage76,31 → 77,320.05ΔRGB(-11,-61,-54)antialiasing coverage residue on a shared outline
ColorValue32,32 → 34,330.05ΔRGB(-15,-79,-70)fill recolour ΔRGB(-15,-79,-70) (ΔE 0)
Missing84,32 → 85,330.04candidate lacks paint present in reference (0.04%)
ColorValue50,32 → 51,330.04ΔRGB(-15,-83,-73)fill recolour ΔRGB(-15,-83,-73) (ΔE 0)
AntialiasCoverage51,29 → 52,310.03ΔRGB(-30,-168,-150)antialiasing coverage residue on a shared outline
ColorValue35,31 → 37,320.03ΔRGB(18,100,90)fill recolour ΔRGB(+18,+100,+90) (ΔE 0)
Extra7,28 → 8,290.03candidate adds paint absent from reference (0.03%)
Extra77,31 → 78,320.03candidate adds paint absent from reference (0.03%)
Extra12,33 → 13,340.03candidate adds paint absent from reference (0.03%)
AntialiasCoverage0,30 → 1,300.02ΔRGB(-1,-1,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage47,31 → 48,310.02ΔRGB(-1,-4,-3)antialiasing coverage residue on a shared outline
source · cases/inline-text/inline-text-text-decoration-wavy.html
1<!DOCTYPE html><html><head><meta charset='utf-8'><style>@page{size:256px 104px;margin:0}html{font-family:ParitySans;line-height:1.5}*{margin:0;box-sizing:border-box}body{padding:16px;background:#fff;font-size:34px}.t{text-decoration-line:underline;text-decoration-style:wavy;text-decoration-color:#d7263d;color:#111}</style></head><body><span class='t'>Wave</span></body></html>

inline non-replaced box edges — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS visually equivalent · no rejecting defect · thresholded evidence 0.49% · raw 0.49% (3712 px) inline-text-horizontal-edges · horizontal-padding-marginPASS via CSS-scale observation: stable same-coordinate outline phaseAntialiasCoveragemissing 0.6%extra 0.3%ΔE 32.0
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
why: visually accepted coverage phase; raw antialiasing coverage residue on a shared outline
Horizontal padding and margins advance surrounding inline text across LTR, RTL, and wrapped fragments.
regions (105 total; showing 64 representatives)

Complete component census grouped by dominant raster class; representative details are bounded.

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
Missing731672,96 → 236,166240total 0.07% · largest 0.05%
Extra1116916,96 → 277,14792total 0.04% · largest 0.02%
ColorErr87322716,128 → 113,171332total 0.7% · largest 0.07%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage45,134 → 52,1460.07ΔRGB(41,30,33)antialiasing coverage residue on a shared outline
AntialiasCoverage55,131 → 61,1430.06ΔRGB(81,59,65)antialiasing coverage residue on a shared outline
AntialiasCoverage83,134 → 97,1430.05ΔRGB(34,25,27)antialiasing coverage residue on a shared outline
Missing113,128 → 114,1470.05candidate lacks paint present in reference (0.05%)
AntialiasCoverage28,137 → 35,1430.04ΔRGB(-27,-20,-22)antialiasing coverage residue on a shared outline
AntialiasCoverage63,137 → 69,1430.04ΔRGB(-27,-20,-22)antialiasing coverage residue on a shared outline
AntialiasCoverage29,134 → 36,1430.03ΔRGB(25,18,20)antialiasing coverage residue on a shared outline
AntialiasCoverage64,134 → 71,1430.03ΔRGB(25,18,20)antialiasing coverage residue on a shared outline
AntialiasCoverage105,134 → 112,1430.03ΔRGB(65,48,53)antialiasing coverage residue on a shared outline
AntialiasCoverage72,147 → 113,1470.03ΔRGB(-17,-26,-12)antialiasing coverage residue on a shared outline
AntialiasCoverage80,135 → 85,1410.03ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage78,131 → 79,1430.03ΔRGB(-165,-120,-132)antialiasing coverage residue on a shared outline
AntialiasCoverage43,134 → 44,1460.02ΔRGB(-103,-75,-82)antialiasing coverage residue on a shared outline
AntialiasCoverage39,131 → 39,1430.02ΔRGB(-135,-99,-109)antialiasing coverage residue on a shared outline
AntialiasCoverage40,131 → 41,1430.02ΔRGB(150,109,121)antialiasing coverage residue on a shared outline
AntialiasCoverage53,131 → 54,1430.02ΔRGB(-103,-75,-82)antialiasing coverage residue on a shared outline
Extra16,129 → 19,1450.02candidate adds paint absent from reference (0.02%)
AntialiasCoverage103,137 → 108,1430.02ΔRGB(-81,-59,-65)antialiasing coverage residue on a shared outline
AntialiasCoverage98,136 → 101,1430.02ΔRGB(-165,-120,-132)antialiasing coverage residue on a shared outline
AntialiasCoverage90,139 → 96,1430.01ΔRGB(65,48,53)antialiasing coverage residue on a shared outline
AntialiasCoverage106,139 → 110,1410.01ΔRGB(9,6,7)antialiasing coverage residue on a shared outline
Missing236,96 → 236,1150.01candidate lacks paint present in reference (0.01%)
Extra277,96 → 277,1150.01candidate adds paint absent from reference (0.01%)
AntialiasCoverage90,135 → 95,1370.009179ΔRGB(9,6,7)antialiasing coverage residue on a shared outline
AntialiasCoverage100,136 → 101,1410.009179ΔRGB(189,138,152)antialiasing coverage residue on a shared outline
AntialiasCoverage97,132 → 99,1350.008762ΔRGB(-122,-89,-98)antialiasing coverage residue on a shared outline
AntialiasCoverage80,131 → 83,1340.007510ΔRGB(189,138,152)antialiasing coverage residue on a shared outline
AntialiasCoverage103,134 → 104,1350.003755ΔRGB(165,120,132)antialiasing coverage residue on a shared outline
AntialiasCoverage108,142 → 110,1430.003546ΔRGB(24,18,20)antialiasing coverage residue on a shared outline
AntialiasCoverage100,132 → 100,1340.003338ΔRGB(189,138,152)antialiasing coverage residue on a shared outline
AntialiasCoverage80,142 → 83,1430.003338ΔRGB(-23,-17,-18)antialiasing coverage residue on a shared outline
Missing73,160 → 73,1630.002503candidate lacks paint present in reference (0.002503%)
AntialiasCoverage16,136 → 16,1390.002086ΔRGB(-43,-65,-31)antialiasing coverage residue on a shared outline
AntialiasCoverage71,166 → 72,1680.002086ΔRGB(5,7,3)antialiasing coverage residue on a shared outline
AntialiasCoverage22,128 → 24,1280.001252ΔRGB(-11,-17,-8)antialiasing coverage residue on a shared outline
AntialiasCoverage68,152 → 69,1530.001252ΔRGB(4,5,3)antialiasing coverage residue on a shared outline
AntialiasCoverage73,158 → 73,1590.001252ΔRGB(11,17,8)antialiasing coverage residue on a shared outline
AntialiasCoverage70,154 → 71,1550.001043ΔRGB(4,6,3)antialiasing coverage residue on a shared outline
AntialiasCoverage72,155 → 72,1560.001043ΔRGB(4,7,3)antialiasing coverage residue on a shared outline
AntialiasCoverage73,164 → 73,1650.001043ΔRGB(9,13,6)antialiasing coverage residue on a shared outline
AntialiasCoverage68,170 → 69,1700.001043ΔRGB(5,6,3)antialiasing coverage residue on a shared outline
AntialiasCoverage16,134 → 16,1350.000834ΔRGB(-17,-26,-12)antialiasing coverage residue on a shared outline
AntialiasCoverage16,140 → 16,1410.000834ΔRGB(-17,-26,-12)antialiasing coverage residue on a shared outline
AntialiasCoverage19,145 → 20,1460.000834ΔRGB(-13,-20,-9)antialiasing coverage residue on a shared outline
AntialiasCoverage21,147 → 22,1470.000834ΔRGB(-13,-20,-9)antialiasing coverage residue on a shared outline
AntialiasCoverage23,147 → 24,1470.000834ΔRGB(-8,-11,-6)antialiasing coverage residue on a shared outline
AntialiasCoverage69,153 → 70,1530.000834ΔRGB(5,6,3)antialiasing coverage residue on a shared outline
AntialiasCoverage69,169 → 70,1700.000834ΔRGB(5,8,4)antialiasing coverage residue on a shared outline
AntialiasCoverage21,128 → 22,1280.000626ΔRGB(-25,-37,-18)antialiasing coverage residue on a shared outline
AntialiasCoverage108,137 → 108,1370.000626ΔRGB(-15,-12,-13)antialiasing coverage residue on a shared outline
AntialiasCoverage73,157 → 73,1570.000626ΔRGB(10,16,7)antialiasing coverage residue on a shared outline
AntialiasCoverage71,168 → 71,1690.000626ΔRGB(11,16,8)antialiasing coverage residue on a shared outline
AntialiasCoverage67,171 → 68,1710.000626ΔRGB(4,5,3)antialiasing coverage residue on a shared outline
Extra22,128 → 22,1280.000417candidate adds paint absent from reference (0.000417%)
Extra21,128 → 21,1280.000417candidate adds paint absent from reference (0.000417%)
Extra20,129 → 20,1290.000417candidate adds paint absent from reference (0.000417%)
Extra20,129 → 20,1290.000417candidate adds paint absent from reference (0.000417%)
Extra20,146 → 20,1460.000417candidate adds paint absent from reference (0.000417%)
Extra20,146 → 20,1460.000417candidate adds paint absent from reference (0.000417%)
Extra21,147 → 21,1470.000417candidate adds paint absent from reference (0.000417%)
Extra22,147 → 22,1470.000417candidate adds paint absent from reference (0.000417%)
AntialiasCoverage21,129 → 21,1290.000417ΔRGB(-4,-7,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage20,129 → 20,1290.000417ΔRGB(-4,-7,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage20,129 → 20,1290.000417ΔRGB(-9,-13,-6)antialiasing coverage residue on a shared outline
source · cases/inline-text/inline-text-horizontal-edges.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<style>
6  @page { size: 320px 240px; margin: 0; }
7  html { font-family: ParitySans; line-height: 1.5; }
8  * { margin: 0; box-sizing: border-box; }
9  html, body { background: #ffffff; }
10  body { padding: 16px; color: #102a43; font-size: 16px; }
11  .row { height: 32px; white-space: nowrap; }
12  .padded { padding: 0 16px; background: #ffd166; }
13  .margined { margin: 0 16px; background: #06d6a0; }
14  .rtl { direction: rtl; }
15  .rtl-edge { padding-left: 8px; padding-right: 24px; background: #ef476f; }
16  .wrap { width: 128px; white-space: normal; line-height: 24px; }
17  .wrap-edge { padding: 0 12px; border-radius: 8px; background: #cdb4db; }
18</style>
19</head>
20<body>
21  <div class="row">A<span class="padded">B</span>C</div>
22  <div class="row">A<span class="margined">B</span>C</div>
23  <div class="row">A<span>B</span>C</div>
24  <div class="row rtl">א<span class="rtl-edge">ב</span>ג</div>
25  <div class="wrap">A <span class="wrap-edge">alpha <b>beta</b> gamma</span> Z</div>
26</body>
27</html>

inline-block — 100.00% verified visual parity PASS 4 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS visually equivalent · no rejecting defect · thresholded evidence 0.03% · raw 0.04% (207 px) inline-text-inline-block-baseline-multiline · baseline-multilinePASS via CSS-scale observation: sub-CSS shared-colour coverageAntialiasCoverageΔE 20.2
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
why: visually accepted coverage phase; raw antialiasing coverage residue on a shared outline
Multi-line inline-block aligns its LAST line's baseline to the surrounding text baseline (CSS2 §10.8.1).
regions (6 total; showing 6 representatives)

Complete component census grouped by dominant raster class; representative details are bounded.

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
ColorErr620787,44 → 94,52159total 0.08% · largest 0.06%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage87,44 → 94,520.06ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage88,45 → 93,470.02ΔRGB(2,2,1)antialiasing coverage residue on a shared outline
AntialiasCoverage90,47 → 90,470.000766ΔRGB(-1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage89,47 → 89,470.000383ΔRGB(0,-1,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage91,47 → 91,470.000383ΔRGB(-1,-1,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage92,47 → 92,470.000383ΔRGB(-1,-1,0)antialiasing coverage residue on a shared outline
source · cases/inline-text/inline-text-inline-block-baseline-multiline.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<style>
6  @page { size: 480px 120px; margin: 0; }
7  html { font-family: ParitySans; line-height: 1.5; }
8  * { margin: 0; box-sizing: border-box; }
9  html, body { background: #ffffff; }
10  .line {
11    margin: 20px;
12    padding: 8px;
13    width: 360px;
14    border: 2px solid #1a1a1a;
15    background: #f2f2f2;
16    font-family: ParitySans;
17    font-size: 18px;
18    color: #1a1a1a;
19  }
20  /* An inline-block with MULTIPLE in-flow lines aligns its LAST line's
21     baseline to the surrounding text baseline (CSS2 §10.8.1). */
22  .ib {
23    display: inline-block;
24    width: 70px;
25    background: #d8e4f2;
26    border: 2px solid #2a4a8a;
27    padding: 4px;
28    font-size: 14px;
29    color: #16294f;
30  }
31</style>
32</head>
33<body>
34  <div class="line">Text <span class="ib">one two three</span> Text</div>
35</body>
36</html>
PASS exact match inline-text-inline-block-baseline · baseline-alignment
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Inline-block with content aligns its last-line baseline to the surrounding text baseline.
PASS exact match inline-text-inline-block-shrink-to-fit · shrink-to-fit
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Inline-blocks with no explicit width use shrink-to-fit sizing, hugging their content (CSS2 §10.3.9).
PASS exact match inline-text-multiple-inline-blocks · multiple
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Several inline-blocks flow left-to-right on one line, separated by inter-element whitespace.

letter-spacing — 100.00% verified visual parity PASS 2 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match inline-text-letter-spacing · positive
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
letter-spacing:8px on monospace text widens advance between every glyph.
PASS exact match inline-text-letter-spacing-negative · negative
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Negative letter-spacing tightens the gap between glyphs (css-text-3 §8.2).

line-height — 100.00% verified visual parity PASS 3 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match inline-text-line-height-length · length
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
line-height:<length> sets a fixed line-box height (CSS2 §10.8).
PASS exact match inline-text-line-height-numeric · numeric
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Three filled paragraphs with line-height:2; verifies inter-line spacing and line-box height.
PASS exact match inline-text-line-height-unitless · unitless
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A unitless line-height:1 multiplies the font size for the used line-box height (CSS2 §10.8.1).

overflow-wrap — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match inline-text-overflow-wrap-break-word · break-word
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
overflow-wrap:break-word breaks an over-long word so it fits the box (css-text-3 §5.4).

sub-point text-decoration thickness and offset — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match inline-text-decoration-subpoint-geometry · text-decoration-subpoint-geometry
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A 0.1px decoration exercises the CSS-mandated one-device-pixel thickness floor while auto, explicit zero, and signed +/-1px (0.75pt) offsets stay distinct. Catches: arbitrary 1pt floors, treating an authored offset as an adjustment to the automatic position, offset rescaling, or thickness-dependent compensation.

text-align — 100.00% verified visual parity PASS 4 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS visually equivalent · no rejecting defect · thresholded evidence 0.07% · raw 0.07% (520 px) inline-text-text-align-justify-multiline · justify-multilinePASS via CSS-scale observation: sub-CSS shared-colour coverageAntialiasCoverageΔE 26.3
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
why: visually accepted coverage phase; raw antialiasing coverage residue on a shared outline
text-align:justify stretches inter-word spacing so non-last lines reach both edges (css-text-3 §7.3).
regions (5 total; showing 5 representatives)

Complete component census grouped by dominant raster class; representative details are bounded.

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
ColorErr5520219,42 → 262,51155total 0.1% · largest 0.04%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage219,42 → 227,510.04ΔRGB(-2,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage255,42 → 262,510.03ΔRGB(-21,-21,-21)antialiasing coverage residue on a shared outline
AntialiasCoverage220,43 → 226,500.03ΔRGB(-2,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage255,45 → 261,510.02ΔRGB(37,37,37)antialiasing coverage residue on a shared outline
AntialiasCoverage256,46 → 261,500.02ΔRGB(-5,-5,-5)antialiasing coverage residue on a shared outline
source · cases/inline-text/inline-text-text-align-justify-multiline.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<style>
6  @page { size: 400px 184px; margin: 0; }
7  html { font-family: ParitySans; line-height: 1.5; }
8  * { margin: 0; box-sizing: border-box; }
9  html, body { background: #ffffff; }
10  .box {
11    width: 280px;
12    margin: 20px;
13    padding: 8px;
14    border: 2px solid #1a1a1a;
15    background: #f2f2f2;
16    font-family: ParitySans;
17    font-size: 16px;
18    color: #1a1a1a;
19    text-align: justify;
20  }
21</style>
22</head>
23<body>
24  <!-- text-align:justify stretches inter-word spacing so every non-last line
25       reaches both edges (css-text-3 §7.3). -->
26  <div class="box">Justified text stretches the spaces between words so that each full line touches both the left and the right edge of the box.</div>
27</body>
28</html>
PASS exact match inline-text-text-align-center · center
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
text-align:center horizontally centers a short line within the box content area.
PASS exact match inline-text-text-align-justify · justify
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
text-align:justify stretches inter-word spacing on wrapped non-last lines to both edges.
PASS exact match inline-text-text-align-right · right
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
text-align:right pushes a short line to the right edge of the box content area.

text-decoration — 100.00% verified visual parity PASS 3 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS visually equivalent · no rejecting defect · thresholded evidence 0.11% · raw 0.11% (435 px) inline-text-text-decoration-overline · overlinePASS via CSS-scale observation: sub-CSS shared-colour coverageAntialiasCoverageΔE 84.8
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
why: visually accepted coverage phase; raw antialiasing coverage residue on a shared outline
text-decoration-line:overline draws a line above the text (css-text-decor-3 §2.1).
regions (1 total; showing 1 representative)

Complete component census grouped by dominant raster class; representative details are bounded.

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
ColorErr143569,11 → 208,11435total 0.3% · largest 0.3%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage69,11 → 208,110.3ΔRGB(216,216,216)antialiasing coverage residue on a shared outline
source · cases/inline-text/inline-text-text-decoration-overline.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<style>
6  @page { size: 424px 96px; margin: 0; }
7  html { font-family: ParitySans; line-height: 1.5; }
8  * { margin: 0; box-sizing: border-box; }
9  html, body { background: #ffffff; }
10  .box {
11    width: 300px;
12    margin: 20px;
13    padding: 8px;
14    border: 2px solid #1a1a1a;
15    background: #f2f2f2;
16    font-family: ParitySans;
17    font-size: 20px;
18    color: #1a1a1a;
19  }
20  .over { text-decoration: overline; }
21</style>
22</head>
23<body>
24  <!-- text-decoration-line:overline draws a line above the text
25       (css-text-decor-3 §2.1). -->
26  <div class="box">Head <span class="over">overlined text</span> end</div>
27</body>
28</html>
PASS visually equivalent · no rejecting defect · thresholded evidence 0.06% · raw 0.06% (224 px) inline-text-text-decoration-line-through · line-throughPASS via CSS-scale observation: sub-CSS shared-colour coverageAntialiasCoverageΔE 76.4
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
why: visually accepted coverage phase; raw antialiasing coverage residue on a shared outline
text-decoration-line:line-through strikes a line through the text (css-text-decor-3 §2.1).
regions (14 total; showing 14 representatives)

Complete component census grouped by dominant raster class; representative details are bounded.

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
ColorErr1422465,27 → 156,2736total 0.2% · largest 0.02%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage93,27 → 105,270.02ΔRGB(216,216,216)antialiasing coverage residue on a shared outline
AntialiasCoverage147,27 → 156,270.02ΔRGB(161,161,161)antialiasing coverage residue on a shared outline
AntialiasCoverage68,27 → 74,270.01ΔRGB(216,216,216)antialiasing coverage residue on a shared outline
AntialiasCoverage86,27 → 92,270.01ΔRGB(216,216,216)antialiasing coverage residue on a shared outline
AntialiasCoverage135,27 → 140,270.01ΔRGB(216,216,216)antialiasing coverage residue on a shared outline
AntialiasCoverage117,27 → 122,270.01ΔRGB(216,216,216)antialiasing coverage residue on a shared outline
AntialiasCoverage111,27 → 116,270.01ΔRGB(216,216,216)antialiasing coverage residue on a shared outline
AntialiasCoverage124,27 → 128,270.008149ΔRGB(216,216,216)antialiasing coverage residue on a shared outline
AntialiasCoverage130,27 → 133,270.008149ΔRGB(216,216,216)antialiasing coverage residue on a shared outline
AntialiasCoverage142,27 → 145,270.007469ΔRGB(216,216,216)antialiasing coverage residue on a shared outline
AntialiasCoverage76,27 → 79,270.006790ΔRGB(216,216,216)antialiasing coverage residue on a shared outline
AntialiasCoverage81,27 → 84,270.006790ΔRGB(216,216,216)antialiasing coverage residue on a shared outline
AntialiasCoverage107,27 → 109,270.006111ΔRGB(216,216,216)antialiasing coverage residue on a shared outline
AntialiasCoverage65,27 → 66,270.002716ΔRGB(216,216,216)antialiasing coverage residue on a shared outline
source · cases/inline-text/inline-text-text-decoration-line-through.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<style>
6  @page { size: 424px 96px; margin: 0; }
7  html { font-family: ParitySans; line-height: 1.5; }
8  * { margin: 0; box-sizing: border-box; }
9  html, body { background: #ffffff; }
10  .box {
11    width: 300px;
12    margin: 20px;
13    padding: 8px;
14    border: 2px solid #1a1a1a;
15    background: #f2f2f2;
16    font-family: ParitySans;
17    font-size: 20px;
18    color: #1a1a1a;
19  }
20  .strike { text-decoration: line-through; }
21</style>
22</head>
23<body>
24  <!-- text-decoration-line:line-through draws a line through the text
25       (css-text-decor-3 §2.1). -->
26  <div class="box">Price <span class="strike">old value</span> new</div>
27</body>
28</html>
PASS exact match inline-text-text-decoration-underline · underline
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
text-decoration:underline with a colored 2px line under an inline span.

text-decoration-color — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS visually equivalent · no rejecting defect · thresholded evidence 0.10% · raw 0.10% (419 px) inline-text-text-decoration-color · distinctPASS via CSS-scale observation: sub-CSS shared-colour coverageAntialiasCoverageΔE 48.7
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
why: visually accepted coverage phase; raw antialiasing coverage residue on a shared outline
text-decoration-color sets a line colour distinct from the text colour (css-text-decor-3 §2.2). Aspirational: not yet supported.
regions (1 total; showing 1 representative)

Complete component census grouped by dominant raster class; representative details are bounded.

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
ColorErr141930,35 → 164,35419total 0.3% · largest 0.3%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage30,35 → 164,350.3ΔRGB(38,208,208)antialiasing coverage residue on a shared outline
source · cases/inline-text/inline-text-text-decoration-color.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<style>
6  @page { size: 440px 96px; margin: 0; }
7  html { font-family: ParitySans; line-height: 1.5; }
8  * { margin: 0; box-sizing: border-box; }
9  html, body { background: #ffffff; }
10  .box {
11    width: 320px;
12    margin: 20px;
13    padding: 8px;
14    border: 2px solid #1a1a1a;
15    background: #f2f2f2;
16    font-family: ParitySans;
17    font-size: 20px;
18    color: #1a1a1a;
19  }
20  /* text-decoration-color sets a line colour distinct from the text colour
21     (css-text-decor-3 §2.2). */
22  .deco {
23    text-decoration: underline;
24    text-decoration-color: #cc2222;
25  }
26</style>
27</head>
28<body>
29  <div class="box">A <span class="deco">red underline</span> here</div>
30</body>
31</html>

text-decoration-line:underline overline — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS visually equivalent · no rejecting defect · thresholded evidence 0.10% · raw 0.10% (247 px) inline-text-text-decoration-multiple-lines · text-decoration-multiple-linesPASS via CSS-scale observation: sub-CSS shared-outline coverageMissingmissing 2.1%
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
why: visually accepted coverage phase; raw candidate lacks paint present in reference (2.1%)
A span requests underline and overline at the same time. Catches: A single-keyword text-decoration parser passes underline and overline fixtures separately but drops the combined declaration.
regions (1 total; showing 1 representative)

Complete component census grouped by dominant raster class; representative details are bounded.

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
Missing12470,3 → 79,3247total 0.8% · largest 0.8%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
Missing0,3 → 79,30.8candidate lacks paint present in reference (0.8%)
source · cases/inline-text/inline-text-text-decoration-multiple-lines.html
1<!DOCTYPE html><html><head><meta charset='utf-8'><style>@page{size:240px 104px;margin:0}html{font-family:ParitySans;line-height:1.5}*{margin:0;box-sizing:border-box}body{padding:16px;background:#fff;font-size:34px}.t{text-decoration-line:underline overline;text-decoration-color:#d7263d;color:#111}</style></head><body><span class='t'>Both</span></body></html>

text-decoration-thickness:6px — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match inline-text-text-decoration-thickness-length · text-decoration-thickness-length
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A large underlined word sets a 6px decoration thickness, visibly thicker than the default underline. Catches: A renderer using a fixed font-size-relative stroke passes default underline tests but ignores author thickness.

text-indent — 100.00% verified visual parity PASS 2 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match inline-text-text-indent-length · length
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
text-indent:<length> indents only the first formatted line (css-text-3 §8).
PASS exact match inline-text-text-indent-percent · percent-containing-block
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
text-indent:50% indents only the first formatted line by half the containing block width; catches length-only text-indent parsing.

text-transform — 100.00% verified visual parity PASS 3 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match inline-text-text-transform-capitalize · capitalize
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
text-transform:capitalize upper-cases the first letter of each word (css-text-3 §2.1).
PASS exact match inline-text-text-transform-lowercase · lowercase
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
text-transform:lowercase maps each glyph to lower case (css-text-3 §2.1).
PASS exact match inline-text-text-transform-uppercase · uppercase
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
text-transform:uppercase maps each glyph to upper case (css-text-3 §2.1).

text-underline-offset:10px — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match inline-text-text-underline-offset-length · text-underline-offset-length
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
An underlined word requests a 10px underline offset, leaving a large gap below the baseline. Catches: A fixed underline-position renderer passes ordinary underline tests but cannot move the line.

vertical-align — 100.00% verified visual parity PASS 9 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS visually equivalent · no rejecting defect · thresholded evidence 0.35% · raw 0.36% (1566 px) inline-text-vertical-align-super · superPASS via CSS-scale observation: sub-CSS shared-colour coverageAntialiasCoverageΔE 23.3
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
why: visually accepted coverage phase; raw antialiasing coverage residue on a shared outline
Inline-block box vertical-align:super raised above the text baseline (CSS2 §10.8.1).
regions (7 total; showing 7 representatives)

Complete component census grouped by dominant raster class; representative details are bounded.

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
ColorErr7156610,25 → 91,47340total 0.9% · largest 0.2%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage26,30 → 37,420.2ΔRGB(-1,-1,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage63,30 → 74,470.2ΔRGB(4,4,4)antialiasing coverage residue on a shared outline
AntialiasCoverage76,25 → 91,450.2ΔRGB(1,1,1)antialiasing coverage residue on a shared outline
AntialiasCoverage10,26 → 25,420.2ΔRGB(-19,-19,-19)antialiasing coverage residue on a shared outline
AntialiasCoverage14,28 → 20,360.06ΔRGB(16,16,16)antialiasing coverage residue on a shared outline
AntialiasCoverage79,34 → 89,410.05ΔRGB(-56,-56,-56)antialiasing coverage residue on a shared outline
AntialiasCoverage79,27 → 89,340.05ΔRGB(64,64,64)antialiasing coverage residue on a shared outline
source · cases/inline-text/inline-text-vertical-align-super.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<style>
6  @page { size: 424px 104px; margin: 0; }
7  html { font-family: ParitySans; line-height: 1.5; }
8  * { margin: 0; box-sizing: border-box; }
9  html, body { background: #ffffff; }
10  .line {
11    margin: 20px;
12    padding: 8px;
13    width: 300px;
14    border: 2px solid #1a1a1a;
15    background: #f2f2f2;
16    font-family: ParitySans;
17    font-size: 22px;
18    color: #1a1a1a;
19  }
20  /* vertical-align:super raises the box above the baseline (CSS2 §10.8.1). */
21  .box {
22    display: inline-block;
23    width: 24px;
24    height: 24px;
25    background: #8a2a6a;
26    border: 2px solid #54143e;
27    vertical-align: super;
28  }
29</style>
30</head>
31<body>
32  <div class="line">Ax<span class="box"></span>yQ</div>
33</body>
34</html>
PASS exact match inline-text-vertical-align-baseline · baseline
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Inline-block box vertical-align:baseline sitting on the text baseline between glyphs.
PASS exact match inline-text-vertical-align-bottom · bottom
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Inline-block box vertical-align:bottom aligned to the bottom of the line box (CSS2 §10.8.1).
PASS exact match inline-text-vertical-align-length · length
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
vertical-align:18px shifts an inline-block above the surrounding baseline; catches keyword-only implementations that fall back to baseline.
PASS exact match inline-text-vertical-align-middle · middle
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Inline-block box vertical-align:middle centered on the line x-height.
PASS exact match inline-text-vertical-align-sub · sub
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Inline-block box vertical-align:sub lowered below the text baseline (CSS2 §10.8.1).
PASS exact match inline-text-vertical-align-text-bottom · text-bottom
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
vertical-align:text-bottom aligns to the parent text bottom inside a tall line box; catches aliasing text-bottom to bottom.
PASS exact match inline-text-vertical-align-text-top · text-top
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Inline-block box vertical-align:text-top aligned to the top of the parent text content.
PASS exact match inline-text-vertical-align-top · top
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Inline-block box vertical-align:top aligned to the top of the line box.

vertical-align:<percentage> — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match inline-text-vertical-align-percent · vertical-align-percent
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
An inline-block square uses vertical-align:50% and shifts upward by half its own line-height. Catches: A keyword/length-only implementation ignores percentages while still passing keyword and length baseline tests.

white-space — 100.00% verified visual parity PASS 7 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match inline-text-unicode-spaces · unicode-space-preservation
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
NBSP, EN SPACE, and EM SPACE retain their authored advances while ordinary spaces still collapse.
PASS exact match inline-text-white-space-break-spaces · break-spaces
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
white-space:break-spaces preserves spaces/newlines and soft-wraps after preserved spaces (css-text-3 §4.1.1).
PASS exact match inline-text-white-space-normal · normal
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
white-space:normal collapses runs of spaces/newlines to a single space and soft-wraps (css-text-3 §4.1.1).
PASS exact match inline-text-white-space-nowrap · nowrap
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
white-space:nowrap forces a single line, clipped by overflow:hidden in a narrow box.
PASS exact match inline-text-white-space-pre · pre
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
white-space:pre preserves runs of spaces and explicit newlines in monospace text.
PASS exact match inline-text-white-space-pre-line · pre-line
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
white-space:pre-line collapses spaces but preserves newlines as forced breaks (css-text-3 §4.1.1).
PASS exact match inline-text-white-space-pre-wrap · pre-wrap
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
white-space:pre-wrap preserves spaces while still wrapping at the box edge.

white-space:break-spaces trailing preserved spaces — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS visually equivalent · no rejecting defect · thresholded evidence 0.04% · raw 0.04% (225 px) inline-text-break-spaces-trailing-wrap · break-spaces-trailing-wrapPASS via CSS-scale observation: sub-CSS shared-colour coverageAntialiasCoverageΔE 49.5
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
why: visually accepted coverage phase; raw antialiasing coverage residue on a shared outline
A narrow preserved-space line wraps after visible spaces before the next word instead of hanging them outside the line box. Catches: Treating break-spaces like pre-wrap passes basic break-spaces fixtures but lets trailing spaces hang and keeps the next word on the wrong line.
regions (3 total; showing 3 representatives)

Complete component census grouped by dominant raster class; representative details are bounded.

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
ColorErr322544,3 → 75,5775total 0.3% · largest 0.09%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage62,3 → 62,270.09ΔRGB(-19,-205,-194)antialiasing coverage residue on a shared outline
AntialiasCoverage75,3 → 75,270.09ΔRGB(-19,-205,-194)antialiasing coverage residue on a shared outline
AntialiasCoverage44,33 → 44,570.09ΔRGB(19,205,194)antialiasing coverage residue on a shared outline
source · cases/inline-text/inline-text-break-spaces-trailing-wrap.html
1<!DOCTYPE html><html><head><meta charset='utf-8'><style>@page{size:320px 184px;margin:0}html{font-family:ParitySans;line-height:1.5}*{margin:0;box-sizing:border-box}body{padding:10px;background:#fff}.box{width:150px;font-size:20px;line-height:26px;white-space:break-spaces;background:#eaf3ff;border:2px solid #222}.mark{background:#d7263d;color:#fff}</style></head><body><div class='box'>AA     <span class='mark'>B</span></div><div class='box'>AA<span class='mark'>B</span></div></body></html>

word-break — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match inline-text-word-break-break-all · break-all
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
word-break:break-all allows a break between any two characters, filling each line (css-text-3 §5.1).

word-spacing — 100.00% verified visual parity PASS 2 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match inline-text-word-spacing · positive
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
word-spacing:20px widens the gap at space characters between words on a single line.
PASS exact match inline-text-word-spacing-negative · negative
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Negative word-spacing narrows the gap at spaces between words (css-text-3 §8.1).

word-spacing:<percentage> — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match inline-text-word-spacing-percent · word-spacing-percent
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Two identical text rows compare normal spacing with word-spacing:200%, making every word gap visibly wider. Catches: A length-only word-spacing implementation ignores percentages and still passes px positive/negative spacing fixtures.

wrapping — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match inline-text-wrapping-normal · normal
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Default soft wrapping of inline text across multiple lines inside a narrow fixed-width box.