generated-content — 100.00% verified visual parity

← all categories · PASS 36 · FAIL 0 · REFERENCE-DISPUTED 2 · 38 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.

string-set and string() — 0.00% verified visual parity PASS 0 · FAIL 0 · REFERENCE-DISPUTED 1all categories ↑

REFERENCE-DISPUTED 5873 px · above-floor 1.20% · raw 1.47% max-page diff generated-content-string-set-running-header · string-set-running-header · oracle: weasyprint · REFERENCE DISPUTED · 2 pagesMissingmissing 3.0%extra 3.0%ΔE 13.8
page 1
WeasyPrint ref
WeasyPrint ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
page 2
WeasyPrint ref
WeasyPrint ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
why: candidate lacks paint present in reference (3.0%)
A heading stores its text in a named running string and the page top-center margin prints string(chapter). The explicit top margin gives that box a visible, nonzero layout area; the heading weight is explicit so this isolates named-string collection from engine-specific HTML UA styles. Catches: @page literal/counter support passes simple page footer tests but cannot collect named strings from document content.
reference dispute: CSS GCPM requires string-set to capture the heading and string() to reproduce it in the page-margin box; it does not prescribe renderer-specific glyph quantization. Both PDFs contain the complete Running Head on both pages. On page 1 Ironpress places its header bbox at x=47.8125..132.1758pt, y=4.2683..18.2243pt, versus WeasyPrint x=47.8184..132.2024pt, y=4.2683..18.2363pt. The residual is a text-contour representation difference, so this WeasyPrint PDF is not a unique pixel oracle; raw shared-pdftoppm evidence remains reported.
regions (1327 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
Extra2667601,0 → 165,8537total 0.4% · largest 0.02%
ColorErr81443530,0 → 171,11950total 2.2% · largest 0.02%
Missing2477601,0 → 165,8538total 0.4% · largest 0.02%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage25,76 → 31,850.02ΔRGB(4,4,4)antialiasing coverage residue on a shared outline
AntialiasCoverage35,70 → 35,850.02ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage0,71 → 0,850.02ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage20,75 → 23,840.02ΔRGB(-3,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage109,75 → 112,840.02ΔRGB(-3,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage34,104 → 34,1170.02ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage3,106 → 8,1120.02ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
Missing161,0 → 161,120.02candidate lacks paint present in reference (0.02%)
AntialiasCoverage161,0 → 161,120.02ΔRGB(32,173,154)antialiasing coverage residue on a shared outline
Missing131,0 → 131,120.02candidate lacks paint present in reference (0.02%)
Extra122,0 → 122,120.02candidate adds paint absent from reference (0.02%)
AntialiasCoverage122,0 → 122,120.02ΔRGB(-36,-197,-176)antialiasing coverage residue on a shared outline
AntialiasCoverage131,0 → 131,120.02ΔRGB(12,67,60)antialiasing coverage residue on a shared outline
AntialiasCoverage126,35 → 134,370.02ΔRGB(-213,-213,-213)antialiasing coverage residue on a shared outline
AntialiasCoverage126,38 → 136,400.02ΔRGB(227,227,227)antialiasing coverage residue on a shared outline
AntialiasCoverage155,0 → 160,40.02ΔRGB(-9,-48,-43)antialiasing coverage residue on a shared outline
AntialiasCoverage143,75 → 143,850.02ΔRGB(4,4,4)antialiasing coverage residue on a shared outline
AntialiasCoverage29,76 → 33,810.02ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
Missing126,39 → 136,390.01candidate lacks paint present in reference (0.01%)
AntialiasCoverage109,34 → 117,340.01ΔRGB(-187,-187,-187)antialiasing coverage residue on a shared outline
AntialiasCoverage109,36 → 117,360.01ΔRGB(7,7,7)antialiasing coverage residue on a shared outline
AntialiasCoverage134,76 → 134,850.01ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage124,76 → 124,850.01ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage148,77 → 149,850.01ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage24,107 → 26,1140.01ΔRGB(4,4,4)antialiasing coverage residue on a shared outline
Missing109,36 → 117,360.01candidate lacks paint present in reference (0.01%)
Extra109,34 → 117,340.01candidate adds paint absent from reference (0.01%)
AntialiasCoverage3,34 → 9,350.01ΔRGB(-185,-185,-185)antialiasing coverage residue on a shared outline
Extra1,27 → 8,270.01candidate adds paint absent from reference (0.01%)
AntialiasCoverage1,27 → 8,270.01ΔRGB(-83,-83,-83)antialiasing coverage residue on a shared outline
AntialiasCoverage142,35 → 148,360.01ΔRGB(-27,-27,-27)antialiasing coverage residue on a shared outline
AntialiasCoverage90,76 → 91,830.01ΔRGB(139,139,139)antialiasing coverage residue on a shared outline
AntialiasCoverage117,78 → 117,850.01ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
Extra126,36 → 133,360.01candidate adds paint absent from reference (0.01%)
AntialiasCoverage59,76 → 59,830.01ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage88,76 → 89,830.01ΔRGB(-203,-203,-203)antialiasing coverage residue on a shared outline
AntialiasCoverage167,76 → 167,830.01ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
Missing91,76 → 91,830.01candidate lacks paint present in reference (0.01%)
AntialiasCoverage124,36 → 125,420.01ΔRGB(15,15,15)antialiasing coverage residue on a shared outline
AntialiasCoverage11,39 → 13,430.01ΔRGB(-83,-83,-83)antialiasing coverage residue on a shared outline
AntialiasCoverage156,84 → 162,850.01ΔRGB(4,4,4)antialiasing coverage residue on a shared outline
Extra88,76 → 88,830.01candidate adds paint absent from reference (0.01%)
AntialiasCoverage143,38 → 148,400.01ΔRGB(119,119,119)antialiasing coverage residue on a shared outline
AntialiasCoverage127,31 → 133,320.009996ΔRGB(-73,-73,-73)antialiasing coverage residue on a shared outline
AntialiasCoverage33,70 → 33,760.009996ΔRGB(4,4,4)antialiasing coverage residue on a shared outline
AntialiasCoverage117,76 → 122,770.009996ΔRGB(-2,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage13,77 → 13,830.009996ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage102,77 → 102,830.009996ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage159,5 → 160,100.009496ΔRGB(-23,-123,-110)antialiasing coverage residue on a shared outline
AntialiasCoverage124,6 → 124,120.009496ΔRGB(6,33,30)antialiasing coverage residue on a shared outline
AntialiasCoverage129,6 → 130,120.009496ΔRGB(-31,-166,-148)antialiasing coverage residue on a shared outline
AntialiasCoverage8,29 → 9,340.008996ΔRGB(13,13,13)antialiasing coverage residue on a shared outline
AntialiasCoverage142,31 → 147,320.008996ΔRGB(-68,-68,-68)antialiasing coverage residue on a shared outline
AntialiasCoverage156,36 → 156,400.008996ΔRGB(11,11,11)antialiasing coverage residue on a shared outline
AntialiasCoverage66,85 → 71,850.008996ΔRGB(4,4,4)antialiasing coverage residue on a shared outline
AntialiasCoverage16,85 → 20,850.008996ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage105,85 → 109,850.008996ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage2,108 → 3,1130.008996ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage2,114 → 2,1190.008996ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage39,115 → 44,1160.008996ΔRGB(4,4,4)antialiasing coverage residue on a shared outline
Missing124,7 → 124,120.008496candidate lacks paint present in reference (0.008496%)
Extra129,7 → 129,120.008496candidate adds paint absent from reference (0.008496%)
Extra142,36 → 147,360.008496candidate adds paint absent from reference (0.008496%)
AntialiasCoverage124,0 → 124,50.008496ΔRGB(6,33,30)antialiasing coverage residue on a shared outline
source · cases/generated-content/generated-content-string-set-running-header.html
1<!DOCTYPE html><html><head><meta charset='utf-8'><style>@page{size:240px 170px;margin:30px 0 0}html{font-family:ParitySans;line-height:1.5}*{margin:0;box-sizing:border-box}@page{@top-center{content:string(chapter);color:#d7263d}}body{padding:0 12px 12px;background:#fff;font-size:20px;line-height:30px}h1{string-set:chapter content();font-size:24px;font-weight:normal;margin-bottom:12px}.spacer{height:96px}</style></head><body><h1>Running Head</h1><p>Body text on first page.</p><div class='spacer'></div><p>More body text.</p></body></html>

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

REFERENCE-DISPUTED 4602 px · above-floor 0.52% · raw 0.52% max-page diff generated-content-first-letter-dropcap · drop-cap · REFERENCE DISPUTEDColorValueΔE 27.8
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
why: fill recolour ΔRGB(+1,+1,+1) (ΔE 27.8)
::first-letter floats and enlarges the initial letter of a paragraph into a drop cap with text wrapping beside it.
reference dispute: Ironpress and Chrome have the same floated initial letter, text wrapping, and line sequence. Ironpress matches WeasyPrint's normal-line origins (for example 28.397869pt versus 28.397871pt) while Chrome uses 28.076659pt; the remaining raw divergence is renderer-specific first-letter glyph geometry. CSS Pseudo-Elements specifies the float and allowed styling, not a Chrome-specific glyph bounding box. Raw shared-pdftoppm evidence remains reported.
regions (40 total; showing 40 representatives)

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

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
ColorErr40460214,16 → 234,851562total 1.0% · largest 0.3%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
ColorValue14,16 → 54,600.3ΔRGB(6,12,16)fill recolour ΔRGB(+6,+12,+16) (ΔE 0)
ColorValue27,22 → 46,550.08ΔRGB(-43,-93,-122)fill recolour ΔRGB(-43,-93,-122) (ΔE 0)
ColorValue27,20 → 46,420.08ΔRGB(63,135,178)fill recolour ΔRGB(+63,+135,+178) (ΔE 0)
AntialiasCoverage169,48 → 177,620.07ΔRGB(18,16,17)antialiasing coverage residue on a shared outline
AntialiasCoverage206,48 → 214,620.07ΔRGB(-29,-26,-27)antialiasing coverage residue on a shared outline
AntialiasCoverage219,44 → 226,580.05ΔRGB(-54,-50,-51)antialiasing coverage residue on a shared outline
AntialiasCoverage226,75 → 232,840.05ΔRGB(-54,-50,-51)antialiasing coverage residue on a shared outline
AntialiasCoverage87,48 → 97,590.04ΔRGB(-2,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage89,49 → 95,580.03ΔRGB(-1,-1,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage185,48 → 190,580.03ΔRGB(-54,-50,-51)antialiasing coverage residue on a shared outline
AntialiasCoverage170,49 → 179,630.03ΔRGB(-39,-36,-36)antialiasing coverage residue on a shared outline
AntialiasCoverage217,44 → 218,580.02ΔRGB(81,74,76)antialiasing coverage residue on a shared outline
AntialiasCoverage204,49 → 205,620.02ΔRGB(42,39,40)antialiasing coverage residue on a shared outline
AntialiasCoverage219,75 → 220,840.01ΔRGB(-54,-50,-51)antialiasing coverage residue on a shared outline
AntialiasCoverage183,49 → 183,580.01ΔRGB(81,74,76)antialiasing coverage residue on a shared outline
AntialiasCoverage217,76 → 218,840.01ΔRGB(81,74,76)antialiasing coverage residue on a shared outline
AntialiasCoverage224,76 → 224,840.01ΔRGB(81,74,76)antialiasing coverage residue on a shared outline
AntialiasCoverage217,71 → 219,730.007301ΔRGB(2,2,2)antialiasing coverage residue on a shared outline
AntialiasCoverage216,44 → 216,440.001718ΔRGB(79,72,73)antialiasing coverage residue on a shared outline
AntialiasCoverage180,48 → 180,490.001718ΔRGB(-41,-37,-38)antialiasing coverage residue on a shared outline
AntialiasCoverage181,48 → 182,490.001718ΔRGB(74,67,69)antialiasing coverage residue on a shared outline
AntialiasCoverage203,48 → 203,490.001718ΔRGB(78,72,72)antialiasing coverage residue on a shared outline
AntialiasCoverage181,58 → 182,590.001718ΔRGB(94,87,88)antialiasing coverage residue on a shared outline
AntialiasCoverage187,58 → 187,590.001718ΔRGB(-52,-48,-49)antialiasing coverage residue on a shared outline
AntialiasCoverage216,58 → 216,590.001718ΔRGB(94,87,88)antialiasing coverage residue on a shared outline
AntialiasCoverage221,58 → 221,590.001718ΔRGB(-27,-25,-26)antialiasing coverage residue on a shared outline
AntialiasCoverage222,58 → 223,590.001718ΔRGB(50,46,47)antialiasing coverage residue on a shared outline
AntialiasCoverage227,58 → 228,590.001718ΔRGB(-103,-94,-96)antialiasing coverage residue on a shared outline
AntialiasCoverage203,62 → 203,630.001718ΔRGB(47,43,43)antialiasing coverage residue on a shared outline
AntialiasCoverage208,62 → 208,630.001718ΔRGB(-27,-25,-26)antialiasing coverage residue on a shared outline
AntialiasCoverage216,75 → 216,760.001718ΔRGB(74,67,69)antialiasing coverage residue on a shared outline
AntialiasCoverage222,75 → 222,760.001718ΔRGB(74,67,69)antialiasing coverage residue on a shared outline
AntialiasCoverage216,84 → 216,850.001718ΔRGB(52,48,49)antialiasing coverage residue on a shared outline
AntialiasCoverage221,84 → 221,850.001718ΔRGB(-96,-88,-90)antialiasing coverage residue on a shared outline
AntialiasCoverage222,84 → 222,850.001718ΔRGB(94,87,88)antialiasing coverage residue on a shared outline
AntialiasCoverage227,84 → 228,850.001718ΔRGB(-27,-25,-26)antialiasing coverage residue on a shared outline
AntialiasCoverage229,84 → 229,850.001718ΔRGB(50,46,47)antialiasing coverage residue on a shared outline
AntialiasCoverage234,84 → 234,850.001718ΔRGB(-103,-94,-96)antialiasing coverage residue on a shared outline
AntialiasCoverage54,40 → 54,410.000429ΔRGB(-17,-36,-48)antialiasing coverage residue on a shared outline
AntialiasCoverage54,41 → 54,410.000215ΔRGB(-5,-10,-13)antialiasing coverage residue on a shared outline
source · cases/generated-content/generated-content-first-letter-dropcap.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<title>first-letter drop cap</title>
6<style>
7  @page { size: 432px 208px; margin: 0; }
8  html { font-family: ParitySans; line-height: 1.5; }
9  * { margin: 0; box-sizing: border-box; }
10  html, body { background: #ffffff; }
11  .box {
12    width: 300px;
13    margin: 24px;
14    padding: 10px;
15    border: 2px solid #283618;
16    background: #fefae0;
17    font-family: ParitySerif;
18    font-size: 20px;
19    line-height: 1.35;
20    color: #283618;
21  }
22  .para::first-letter {
23    float: left;
24    font-size: 56px;
25    line-height: 1;
26    padding-right: 6px;
27    color: #bc6c25;
28    font-weight: bold;
29  }
30</style>
31</head>
32<body>
33  <div class="box"><p class="para">Drop cap leads this short paragraph while the remaining text wraps beside the enlarged initial letter.</p></div>
34</body>
35</html>
PASS visually equivalent · no rejecting defect · thresholded evidence 0.03% · raw 0.03% (237 px) generated-content-first-letter-transform · text-transform-uppercasePASS via CSS-scale observation: sub-CSS shared-colour coverageAntialiasCoverageΔE 28.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
::first-letter text-transform:uppercase uppercases just the initial letter.
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
ColorErr7237102,21 → 110,3781total 0.05% · largest 0.02%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage103,26 → 108,370.02ΔRGB(-58,-53,-54)antialiasing coverage residue on a shared outline
AntialiasCoverage106,26 → 108,360.01ΔRGB(56,51,52)antialiasing coverage residue on a shared outline
AntialiasCoverage103,21 → 104,240.004879ΔRGB(-11,-10,-10)antialiasing coverage residue on a shared outline
AntialiasCoverage106,21 → 106,240.004879ΔRGB(104,95,97)antialiasing coverage residue on a shared outline
AntialiasCoverage102,24 → 102,260.002846ΔRGB(-2,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage110,24 → 110,260.002846ΔRGB(83,76,77)antialiasing coverage residue on a shared outline
AntialiasCoverage110,36 → 110,370.002439ΔRGB(84,77,78)antialiasing coverage residue on a shared outline
source · cases/generated-content/generated-content-first-letter-transform.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<title>first-letter text-transform uppercase</title>
6<style>
7  @page { size: 432px 208px; margin: 0; }
8  html { font-family: ParitySans; line-height: 1.5; }
9  * { margin: 0; box-sizing: border-box; }
10  html, body { background: #ffffff; }
11  .box {
12    width: 300px;
13    margin: 24px;
14    padding: 10px;
15    border: 2px solid #283618;
16    background: #fefae0;
17    font-family: ParitySans;
18    font-size: 24px;
19    line-height: 1.5;
20    color: #283618;
21  }
22  .para::first-letter {
23    text-transform: uppercase;
24    color: #bc6c25;
25  }
26</style>
27</head>
28<body>
29  <div class="box"><p class="para">the first letter is uppercased and colored while the rest stays lowercase.</p></div>
30</body>
31</html>
PASS exact match generated-content-first-letter-color · color-background
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
::first-letter recolors the initial letter white on an orange background at the same size.

::before{display:list-item} — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match generated-content-before-list-item-marker · before-list-item-marker
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A block's ::before pseudo is display:list-item with list-style-type:square, producing a marker before the generated label. Catches: Supporting inline/block generated pseudos passes existing ::before fixtures but drops marker generation for list-item pseudos.

::first-letter numeric first-letter unit — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match generated-content-first-letter-leading-digit · first-letter-leading-digit
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A paragraph starts with a digit and ::first-letter should style that digit before the rest of the text. Catches: An implementation limited to alphabetic letters passes prose drop-cap fixtures but ignores numeric initial-letter units.

::first-letter punctuation unit — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS visually equivalent · no rejecting defect · thresholded evidence 0.03% · raw 0.03% (109 px) generated-content-first-letter-leading-quote · first-letter-leading-quotePASS via CSS-scale observation: sub-CSS shared-outline coverageExtraextra 0.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 candidate adds paint absent from reference (0.4%)
A paragraph begins with an opening quote; ::first-letter background and color should apply to the quote plus the first letter as one unit. Catches: Styling only the first alphanumeric glyph passes simple first-letter tests but leaves the quote unstyled.
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
Extra110938,0 → 38,35109total 0.06% · largest 0.06%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
Extra38,0 → 38,350.06candidate adds paint absent from reference (0.06%)
source · cases/generated-content/generated-content-first-letter-leading-quote.html
1<!DOCTYPE html><html><head><meta charset='utf-8'><style>@page{size:320px 120px;margin:0}html{font-family:ParitySans;line-height:1.5}*{margin:0;box-sizing:border-box}body{padding:12px;background:#fff}p{font-size:30px;line-height:42px}p::first-letter{background:#d7263d;color:#fff;font-weight:bold}</style></head><body><p>&ldquo;Quoted opening text.</p></body></html>

::first-line letter-spacing — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match generated-content-first-line-letter-spacing · first-line-letter-spacing
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Only the first formatted line gets 5px letter spacing, changing where that line wraps relative to later lines. Catches: Restyling after line breaking passes color-only first-line fixtures but misses geometry-affecting first-line properties.

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

PASS visually equivalent · no rejecting defect · thresholded evidence 0.02% · raw 0.02% (130 px) generated-content-first-line-line-height · first-line-line-heightPASS via CSS-scale observation: sub-CSS shared-colour coverageAntialiasCoverageΔE 27.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
The first line gets a 54px line-height while later lines keep 24px, creating extra vertical space after line one. Catches: Applying first-line style after wrapping without recomputing line metrics passes color/background tests but keeps uniform line heights.
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
ColorErr1130240,18 → 240,39130total 0.05% · largest 0.05%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage240,18 → 240,390.05ΔRGB(17,-2,-76)antialiasing coverage residue on a shared outline
source · cases/generated-content/generated-content-first-line-line-height.html
1<!DOCTYPE html><html><head><meta charset='utf-8'><style>@page{size:320px 176px;margin:0}html{font-family:ParitySans;line-height:1.5}*{margin:0;box-sizing:border-box}body{padding:12px;background:#fff}p{width:250px;font-size:18px;line-height:24px;background:#eef;border:2px solid #333}p::first-line{line-height:54px;color:#d7263d;background:#ffecb3}</style></head><body><p>First line has extra leading while the rest of the paragraph stays compact.</p></body></html>

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

PASS exact match generated-content-first-line-text-transform · first-line-text-transform
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A wrapped paragraph uppercases only the first formatted line through ::first-line{text-transform:uppercase}. Catches: A first-line implementation that only copies color/background/font-weight passes existing first-line tests while leaving text case unchanged.

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

PASS exact match generated-content-unicode-string · literal-unicode-code-point
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A generated-content string preserves a literal Unicode middle dot. Catches CSS preprocessing that copies UTF-8 bytes as separate characters before tokenization.

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

PASS exact match generated-content-attr · before-attr
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
content: attr(data-prefix) pulls the value of an HTML data attribute into ::before generated text.
PASS exact match generated-content-attr-missing · attr-missing-empty
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
attr() of a missing attribute resolves to the empty string, leaving only the literal brackets.

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

PASS exact match generated-content-counter · counter-reset-increment
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
counter-reset plus counter-increment with content: counter(step) numbers three stacked items via ::before.
PASS exact match generated-content-counter-roman · counter-style-upper-roman
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
content: counter(step, upper-roman) renders item numbers as I, II, III, IV.

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

PASS exact match generated-content-counters-nested · counters-nested
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
content: counters(name, ".") numbers nested list items as 1, 1.1, 1.2, 2 via ::before.

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

PASS exact match generated-content-content-list-mix · string-counter-attr-mix
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A single content declaration concatenates a string, counter(), and attr() into one ::before label.

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

PASS exact match generated-content-content-none · content-none
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
content: none on ::before suppresses the pseudo-element so only the original element text renders.
PASS exact match generated-content-content-normal · content-normal
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
content: normal on ::before computes to none and suppresses the pseudo-element.

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

PASS exact match generated-content-content-url-image · before-image
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
content: url(data:png) on ::before places a small decoded raster image before the element text.
PASS exact match generated-content-content-url-sized · before-image-sized
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
content: url(data:png) with explicit width/height scales the ::before replaced image.

content:leader('.') — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS visually equivalent · no rejecting defect · thresholded evidence 0.25% · raw 0.35% (1472 px) generated-content-leader-function · leader-function · oracle: weasyprintPASS via CSS-scale observation: sub-CSS shared-outline coverageAntialiasCoveragemissing 0.7%extra 0.7%ΔE 4.5
WeasyPrint ref
WeasyPrint 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 table-of-contents row inserts a dotted leader between a title and a page number. The destination is a non-painting anchor so default heading font synthesis cannot mask the leader result. Catches: A generated-content parser without leader() passes string and counter fixtures but leaves a blank gap before page numbers.
regions (305 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
ColorErr24913590,0 → 277,1939total 2.6% · largest 0.07%
Extra2957113,4 → 160,1510total 0.1% · largest 0.02%
Missing2756115,4 → 163,158total 0.1% · largest 0.02%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage43,5 → 48,120.07ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage24,6 → 24,150.05ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage74,7 → 75,150.05ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage4,15 → 11,150.05ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage17,8 → 17,150.05ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage54,6 → 54,130.04ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage89,6 → 89,130.04ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage102,6 → 102,130.04ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage5,2 → 11,30.04ΔRGB(-3,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage17,0 → 17,60.04ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage0,4 → 1,100.04ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage42,8 → 42,130.03ΔRGB(-3,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage42,14 → 42,190.03ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage62,15 → 67,150.03ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage272,6 → 273,100.03ΔRGB(1,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage29,10 → 34,100.03ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage270,10 → 272,140.03ΔRGB(0,3,2)antialiasing coverage residue on a shared outline
AntialiasCoverage28,15 → 32,150.03ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage5,13 → 9,140.03ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage60,8 → 60,120.03ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage55,14 → 58,150.03ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage90,14 → 93,150.03ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage103,14 → 106,150.03ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage33,13 → 34,150.02ΔRGB(-1,-1,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage11,1 → 12,40.02ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage67,13 → 69,140.02ΔRGB(-2,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage117,15 → 121,150.02ΔRGB(15,15,15)antialiasing coverage residue on a shared outline
AntialiasCoverage21,4 → 23,50.02ΔRGB(2,2,2)antialiasing coverage residue on a shared outline
AntialiasCoverage117,4 → 120,40.02ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage33,10 → 34,130.02ΔRGB(4,4,4)antialiasing coverage residue on a shared outline
AntialiasCoverage28,11 → 29,130.02ΔRGB(-3,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage11,12 → 12,140.02ΔRGB(-3,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage122,13 → 123,150.02ΔRGB(43,43,43)antialiasing coverage residue on a shared outline
Extra113,8 → 113,110.02candidate adds paint absent from reference (0.02%)
AntialiasCoverage54,1 → 54,40.02ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage89,1 → 89,40.02ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage102,1 → 102,40.02ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage276,2 → 277,40.02ΔRGB(0,-2,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage78,4 → 79,60.02ΔRGB(4,4,4)antialiasing coverage residue on a shared outline
AntialiasCoverage47,4 → 48,60.02ΔRGB(-3,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage28,5 → 28,60.02ΔRGB(-1,-1,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage17,6 → 19,70.02ΔRGB(-3,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage113,8 → 113,110.02ΔRGB(-129,-129,-129)antialiasing coverage residue on a shared outline
AntialiasCoverage1,11 → 2,130.02ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage115,14 → 117,150.02ΔRGB(-80,-80,-80)antialiasing coverage residue on a shared outline
AntialiasCoverage44,15 → 46,150.02ΔRGB(4,4,4)antialiasing coverage residue on a shared outline
AntialiasCoverage42,4 → 42,60.02ΔRGB(-2,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage74,4 → 75,60.02ΔRGB(-2,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage123,6 → 123,90.02ΔRGB(96,96,96)antialiasing coverage residue on a shared outline
Missing163,13 → 163,150.02candidate lacks paint present in reference (0.02%)
Extra160,13 → 160,150.02candidate adds paint absent from reference (0.02%)
AntialiasCoverage121,4 → 122,60.02ΔRGB(56,56,56)antialiasing coverage residue on a shared outline
AntialiasCoverage20,5 → 21,60.02ΔRGB(-2,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage50,9 → 50,110.02ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage128,13 → 128,150.02ΔRGB(-1,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage135,13 → 135,150.02ΔRGB(-1,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage141,13 → 141,150.02ΔRGB(-1,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage148,13 → 148,150.02ΔRGB(-1,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage154,13 → 154,150.02ΔRGB(-1,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage160,13 → 160,150.02ΔRGB(-27,-148,-133)antialiasing coverage residue on a shared outline
AntialiasCoverage162,13 → 162,150.02ΔRGB(34,189,169)antialiasing coverage residue on a shared outline
AntialiasCoverage166,13 → 166,150.02ΔRGB(-1,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage173,13 → 173,150.02ΔRGB(-1,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage179,13 → 179,150.02ΔRGB(-1,-3,-3)antialiasing coverage residue on a shared outline
source · cases/generated-content/generated-content-leader-function.html
1<!DOCTYPE html><html><head><meta charset='utf-8'><style>@page{size:330px 130px;margin:0}html{font-family:ParitySans;line-height:1.5}*{margin:0;box-sizing:border-box}body{padding:12px;background:#fff;font-size:20px;line-height:30px}.toc{width:280px}.toc a{display:block;text-decoration:none;color:#111}.toc a::after{content:leader('.') ' 7';color:#d7263d}</style></head><body><div class='toc'><a href='#s1'>Chapter title</a></div><span id='s1'></span></body></html>

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

PASS exact match generated-content-first-line · color-weight
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
::first-line restyles only the first wrapped line of a paragraph to red bold while later lines stay normal.
PASS exact match generated-content-first-line-background · background-color
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
::first-line paints a highlight background behind the first wrapped line only.
PASS exact match generated-content-first-line-font-size · font-size-geometry
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
::first-line font-size and line-height change the first formatted line geometry; catches implementations that only restyle first-line paint.

no-open-quote/no-close-quote depth effects — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS visually equivalent · no rejecting defect · thresholded evidence 0.23% · raw 0.24% (936 px) generated-content-no-open-quote-depth · no-open-quote-depthPASS via CSS-scale observation: conserved sub-CSS coverageAntialiasCoveragemissing 2.3%extra 2.3%ΔE 39.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
A hidden opener increments quote depth before a visible nested quote, so the visible quote uses the second-level pair. Catches: Treating no-open-quote as a no-op passes no-glyph tests but fails depth-dependent nested quote rendering.
regions (163 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
Extra36196109,0 → 143,2357total 0.6% · largest 0.2%
ColorErr73544110,0 → 146,2358total 1.5% · largest 0.2%
Missing54196112,0 → 146,2327total 0.6% · largest 0.08%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage110,5 → 110,230.2ΔRGB(-207,-207,-207)antialiasing coverage residue on a shared outline
Extra134,0 → 134,180.2candidate adds paint absent from reference (0.2%)
Extra109,5 → 109,230.2candidate adds paint absent from reference (0.2%)
AntialiasCoverage134,0 → 134,180.2ΔRGB(-207,-207,-207)antialiasing coverage residue on a shared outline
AntialiasCoverage136,0 → 138,70.10ΔRGB(103,103,103)antialiasing coverage residue on a shared outline
AntialiasCoverage112,16 → 113,230.08ΔRGB(103,103,103)antialiasing coverage residue on a shared outline
Extra143,9 → 143,180.08candidate adds paint absent from reference (0.08%)
AntialiasCoverage143,9 → 143,180.08ΔRGB(-107,-107,-107)antialiasing coverage residue on a shared outline
Missing137,10 → 137,180.08candidate lacks paint present in reference (0.08%)
Missing146,10 → 146,180.08candidate lacks paint present in reference (0.08%)
AntialiasCoverage136,10 → 136,180.08ΔRGB(103,103,103)antialiasing coverage residue on a shared outline
AntialiasCoverage145,10 → 145,180.08ΔRGB(215,215,215)antialiasing coverage residue on a shared outline
Missing137,0 → 137,60.06candidate lacks paint present in reference (0.06%)
Missing112,17 → 112,230.06candidate lacks paint present in reference (0.06%)
AntialiasCoverage113,18 → 117,190.05ΔRGB(-13,-13,-13)antialiasing coverage residue on a shared outline
AntialiasCoverage112,5 → 113,70.05ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage139,5 → 143,50.05ΔRGB(12,12,12)antialiasing coverage residue on a shared outline
AntialiasCoverage112,10 → 112,140.04ΔRGB(77,77,77)antialiasing coverage residue on a shared outline
Missing122,10 → 122,130.03candidate lacks paint present in reference (0.03%)
Extra119,10 → 119,130.03candidate adds paint absent from reference (0.03%)
AntialiasCoverage119,10 → 119,130.03ΔRGB(-89,-89,-89)antialiasing coverage residue on a shared outline
AntialiasCoverage121,10 → 121,130.03ΔRGB(162,162,162)antialiasing coverage residue on a shared outline
AntialiasCoverage115,5 → 117,50.03ΔRGB(6,6,6)antialiasing coverage residue on a shared outline
AntialiasCoverage113,7 → 114,80.03ΔRGB(103,103,103)antialiasing coverage residue on a shared outline
Missing112,10 → 112,130.03candidate lacks paint present in reference (0.03%)
AntialiasCoverage118,8 → 119,100.03ΔRGB(-100,-100,-100)antialiasing coverage residue on a shared outline
AntialiasCoverage118,13 → 119,150.03ΔRGB(-111,-111,-111)antialiasing coverage residue on a shared outline
AntialiasCoverage113,5 → 114,60.02ΔRGB(-29,-29,-29)antialiasing coverage residue on a shared outline
AntialiasCoverage115,6 → 116,70.02ΔRGB(1,1,1)antialiasing coverage residue on a shared outline
AntialiasCoverage120,15 → 121,160.02ΔRGB(123,123,123)antialiasing coverage residue on a shared outline
AntialiasCoverage115,17 → 116,170.02ΔRGB(1,1,1)antialiasing coverage residue on a shared outline
Missing145,8 → 145,90.02candidate lacks paint present in reference (0.02%)
AntialiasCoverage117,7 → 118,70.02ΔRGB(-54,-54,-54)antialiasing coverage residue on a shared outline
AntialiasCoverage113,16 → 114,160.02ΔRGB(103,103,103)antialiasing coverage residue on a shared outline
AntialiasCoverage117,16 → 118,160.02ΔRGB(-69,-69,-69)antialiasing coverage residue on a shared outline
AntialiasCoverage118,18 → 119,180.02ΔRGB(100,100,100)antialiasing coverage residue on a shared outline
AntialiasCoverage118,5 → 119,60.01ΔRGB(28,28,28)antialiasing coverage residue on a shared outline
AntialiasCoverage140,6 → 141,70.01ΔRGB(5,5,5)antialiasing coverage residue on a shared outline
AntialiasCoverage142,7 → 143,80.01ΔRGB(-155,-155,-155)antialiasing coverage residue on a shared outline
AntialiasCoverage120,7 → 121,80.01ΔRGB(126,126,126)antialiasing coverage residue on a shared outline
AntialiasCoverage145,8 → 145,90.01ΔRGB(91,91,91)antialiasing coverage residue on a shared outline
Missing112,5 → 112,60.01candidate lacks paint present in reference (0.01%)
Missing121,9 → 121,100.01candidate lacks paint present in reference (0.01%)
Missing112,9 → 112,100.01candidate lacks paint present in reference (0.01%)
Missing112,13 → 112,140.01candidate lacks paint present in reference (0.01%)
Missing121,13 → 121,140.01candidate lacks paint present in reference (0.01%)
AntialiasCoverage120,6 → 120,70.01ΔRGB(141,141,141)antialiasing coverage residue on a shared outline
AntialiasCoverage121,9 → 121,100.01ΔRGB(125,125,125)antialiasing coverage residue on a shared outline
AntialiasCoverage112,9 → 112,100.01ΔRGB(193,193,193)antialiasing coverage residue on a shared outline
AntialiasCoverage121,13 → 121,140.01ΔRGB(121,121,121)antialiasing coverage residue on a shared outline
AntialiasCoverage113,15 → 113,160.01ΔRGB(195,195,195)antialiasing coverage residue on a shared outline
Missing121,8 → 121,80.008439candidate lacks paint present in reference (0.008439%)
Missing137,9 → 137,90.008439candidate lacks paint present in reference (0.008439%)
Missing121,15 → 121,150.008439candidate lacks paint present in reference (0.008439%)
Extra143,8 → 143,90.008439candidate adds paint absent from reference (0.008439%)
Extra119,9 → 119,100.008439candidate adds paint absent from reference (0.008439%)
Extra119,13 → 119,140.008439candidate adds paint absent from reference (0.008439%)
AntialiasCoverage118,5 → 118,50.008439ΔRGB(26,26,26)antialiasing coverage residue on a shared outline
AntialiasCoverage139,7 → 139,70.008439ΔRGB(72,72,72)antialiasing coverage residue on a shared outline
AntialiasCoverage141,7 → 142,70.008439ΔRGB(-76,-76,-76)antialiasing coverage residue on a shared outline
AntialiasCoverage138,7 → 138,70.008439ΔRGB(50,50,50)antialiasing coverage residue on a shared outline
AntialiasCoverage143,8 → 143,90.008439ΔRGB(-138,-138,-138)antialiasing coverage residue on a shared outline
AntialiasCoverage137,9 → 137,90.008439ΔRGB(157,157,157)antialiasing coverage residue on a shared outline
Missing145,6 → 145,70.005626candidate lacks paint present in reference (0.005626%)
source · cases/generated-content/generated-content-no-open-quote-depth.html
1<!DOCTYPE html><html><head><meta charset='utf-8'><style>@page{size:360px 112px;margin:0}html{font-family:ParitySans;line-height:1.5}*{margin:0;box-sizing:border-box}body{padding:12px;background:#fff;font-size:24px;line-height:34px;quotes:'«' '»' '‹' '›'}.hidden::before{content:no-open-quote}.show::before{content:open-quote;color:#d7263d;font-weight:bold}.show::after{content:close-quote;color:#d7263d;font-weight:bold}</style></head><body><p><span class='hidden'></span><span class='show'>inner depth</span></p></body></html>

open-quote/close-quote quote depth across nested elements — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS visually equivalent · no rejecting defect · thresholded evidence 0.02% · raw 0.02% (76 px) generated-content-nested-q-quote-depth · nested-q-quote-depthPASS via CSS-scale observation: sub-CSS shared-colour coverageAntialiasCoverageΔE 27.6
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
Nested q elements use generated open-quote/close-quote with two quote pairs; the inner quote must use the second pair. Catches: Resolving quote depth independently inside each content declaration passes single open/close quote fixtures but never reaches nested quote pairs.
regions (2 total; showing 2 representatives)

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

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
ColorErr27685,4 → 90,1042total 0.1% · largest 0.06%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage89,4 → 90,100.06ΔRGB(11,99,96)antialiasing coverage residue on a shared outline
AntialiasCoverage85,4 → 88,100.05ΔRGB(-15,-131,-127)antialiasing coverage residue on a shared outline
source · cases/generated-content/generated-content-nested-q-quote-depth.html
1<!DOCTYPE html><html><head><meta charset='utf-8'><style>@page{size:360px 120px;margin:0}html{font-family:ParitySans;line-height:1.5}*{margin:0;box-sizing:border-box}body{padding:12px;background:#fff;font-size:24px;line-height:34px;quotes:'«' '»' '‹' '›'}q::before{content:open-quote;color:#d7263d;font-weight:bold}q::after{content:close-quote;color:#d7263d;font-weight:bold}q{background:#eef}</style></head><body><p><q>outer <q>inner</q> outer</q></p></body></html>

position:running() and element() — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS visually equivalent · no rejecting defect · thresholded evidence 0.19% · raw 0.19% (793 px) generated-content-running-element-margin · running-element-margin · oracle: weasyprint · 2 pagesPASS via CSS-scale observation: stable same-coordinate outline phaseMissingmissing 0.8%extra 0.1%
page 1
WeasyPrint ref
WeasyPrint ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
page 2
WeasyPrint ref
WeasyPrint 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 (0.8%)
A sized painted box is captured with position:running(head) and reused by @page top-left via element(head) on two pages. The visible flow probes remain at each page's content top; an explicit top page margin gives the running box a real, non-clipped layout area.
regions (2 total; showing 2 representatives)

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

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
Extra18712,32 → 12,6087total 0.06% · largest 0.06%
Missing170612,60 → 238,60706total 0.5% · largest 0.5%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
Missing12,60 → 238,600.5candidate lacks paint present in reference (0.5%)
Extra12,32 → 12,600.06candidate adds paint absent from reference (0.06%)
source · cases/generated-content/generated-content-running-element-margin.html
1<!DOCTYPE html><html><head><meta charset='utf-8'><style>@page{size:250px 170px;margin:40px 0 0}*{margin:0;box-sizing:border-box}@page{@top-left{content:element(head)}}body{padding:0 12px 12px;background:#fff}.head{position:running(head);width:96px;height:24px;background:#d7263d}.first,.next{height:28px;background:#dbeafe}.next{background:#bbf7d0}.spacer{height:76px}</style></head><body><div class='head'></div><div class='first'></div><div class='spacer'></div><div class='next'></div></body></html>

pseudo-element — 100.00% verified visual parity PASS 5 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match generated-content-after-replaced · after-on-replaced-img
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
::after on a replaced <img> generates no box; only the image renders.
PASS exact match generated-content-after-string · after-content-string
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
::after appends a literal string after the element text inside a filled, bordered box.
PASS exact match generated-content-before-block · before-display-block
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
::before with display:block renders a full-width colored header band above the body text.
PASS exact match generated-content-before-decorative-box · before-empty-decorative-box
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
content: "" with display:inline-block renders an empty ::before as a filled, bordered marker box before the text.
PASS exact match generated-content-before-string · before-content-string
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
::before inserts a literal red string in front of the element text inside a filled, bordered box.

quotes — 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% (626 px) generated-content-nested-quotes · nested-two-levelsPASS via CSS-scale observation: sub-CSS shared-colour coverageAntialiasCoverageΔE 24.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
Two quote pairs nest: open-quote/open-quote/close-quote/close-quote use the first then second declared pair.
regions (13 total; showing 13 representatives)

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

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
ColorErr13626123,18 → 147,36279total 0.3% · largest 0.1%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage136,23 → 145,350.1ΔRGB(14,49,40)antialiasing coverage residue on a shared outline
AntialiasCoverage128,23 → 128,350.04ΔRGB(14,49,40)antialiasing coverage residue on a shared outline
AntialiasCoverage125,25 → 126,350.03ΔRGB(-5,-18,-15)antialiasing coverage residue on a shared outline
AntialiasCoverage134,25 → 134,350.03ΔRGB(-5,-18,-15)antialiasing coverage residue on a shared outline
AntialiasCoverage125,18 → 128,200.02ΔRGB(-1,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage123,23 → 124,250.005585ΔRGB(-4,-14,-12)antialiasing coverage residue on a shared outline
AntialiasCoverage132,23 → 132,250.005585ΔRGB(-4,-14,-12)antialiasing coverage residue on a shared outline
AntialiasCoverage123,35 → 124,360.004654ΔRGB(-4,-14,-12)antialiasing coverage residue on a shared outline
AntialiasCoverage130,35 → 131,360.004654ΔRGB(11,40,33)antialiasing coverage residue on a shared outline
AntialiasCoverage132,35 → 132,360.004654ΔRGB(-20,-75,-62)antialiasing coverage residue on a shared outline
AntialiasCoverage138,35 → 139,360.004654ΔRGB(25,93,76)antialiasing coverage residue on a shared outline
AntialiasCoverage140,35 → 140,360.004654ΔRGB(-5,-18,-15)antialiasing coverage residue on a shared outline
AntialiasCoverage147,35 → 147,360.004654ΔRGB(12,43,35)antialiasing coverage residue on a shared outline
source · cases/generated-content/generated-content-nested-quotes.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<title>nested quotes two levels</title>
6<style>
7  @page { size: 512px 112px; margin: 0; }
8  html { font-family: ParitySans; line-height: 1.5; }
9  * { margin: 0; box-sizing: border-box; }
10  html, body { background: #ffffff; }
11  .box {
12    width: 380px;
13    margin: 24px;
14    padding: 10px;
15    border: 2px solid #003049;
16    background: #fdf0d5;
17    font-family: ParitySerif;
18    font-size: 26px;
19    line-height: 1.3;
20    color: #003049;
21  }
22  .q {
23    quotes: '<' '>' '[' ']';
24  }
25  .q::before {
26    content: open-quote "outer " open-quote "inner" close-quote close-quote;
27    color: #c1121f;
28  }
29</style>
30</head>
31<body>
32  <div class="box"><span class="q"></span></div>
33</body>
34</html>
PASS exact match generated-content-no-quote-keywords · no-open-no-close-quote
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
no-open-quote emits no glyph while close-quote still renders the declared closing quote.
PASS exact match generated-content-open-close-quote · open-close-quote
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
content: open-quote / close-quote on ::before and ::after wraps text in quotation marks from the quotes property.

target-counter(attr(href), page) — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS visually equivalent · no rejecting defect · thresholded evidence 0.17% · raw 0.36% (1244 px) generated-content-target-counter-page · target-counter-page · oracle: weasyprint · 2 pagesPASS via CSS-scale observation: sub-CSS shared-colour coverageAntialiasCoverageΔE 0.7
page 1
WeasyPrint ref
WeasyPrint ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
page 2
WeasyPrint ref
WeasyPrint 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 link to a later section appends that target's page number through target-counter(attr(href), page). Explicit link and target styles isolate cross-reference resolution from user-agent defaults.
regions (276 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
ColorErr27612440,0 → 139,1942total 4.8% · largest 0.2%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage81,4 → 81,170.2ΔRGB(2,2,2)antialiasing coverage residue on a shared outline
AntialiasCoverage114,5 → 119,120.1ΔRGB(0,3,2)antialiasing coverage residue on a shared outline
AntialiasCoverage66,7 → 66,150.1ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage71,7 → 73,130.1ΔRGB(4,4,4)antialiasing coverage residue on a shared outline
AntialiasCoverage133,8 → 137,120.10ΔRGB(0,2,2)antialiasing coverage residue on a shared outline
AntialiasCoverage46,5 → 46,120.09ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage99,5 → 99,120.09ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage130,9 → 134,130.09ΔRGB(0,-1,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage3,14 → 8,150.08ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage4,2 → 9,30.07ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage113,8 → 114,120.07ΔRGB(0,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage113,14 → 113,190.07ΔRGB(-1,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage15,14 → 20,150.07ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage27,14 → 32,150.07ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage86,14 → 91,150.07ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage79,7 → 79,120.06ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage54,9 → 59,100.06ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage52,14 → 57,150.06ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage75,5 → 78,60.05ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage12,8 → 13,120.05ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage25,8 → 25,120.05ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage84,8 → 84,120.05ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage47,13 → 50,150.05ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage100,13 → 103,150.05ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage0,6 → 2,80.05ΔRGB(-1,-1,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage58,13 → 59,150.05ΔRGB(-1,-1,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage79,13 → 79,160.05ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage8,10 → 8,120.05ΔRGB(-2,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage20,12 → 22,130.05ΔRGB(-2,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage32,12 → 34,130.05ΔRGB(-2,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage91,12 → 94,130.05ΔRGB(-2,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage75,13 → 78,130.05ΔRGB(2,2,2)antialiasing coverage residue on a shared outline
AntialiasCoverage58,10 → 59,120.04ΔRGB(4,4,4)antialiasing coverage residue on a shared outline
AntialiasCoverage53,10 → 53,130.04ΔRGB(-3,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage0,12 → 1,140.04ΔRGB(-3,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage46,1 → 46,40.04ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage99,1 → 99,40.04ΔRGB(-4,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage69,4 → 70,50.04ΔRGB(4,4,4)antialiasing coverage residue on a shared outline
AntialiasCoverage118,4 → 120,50.04ΔRGB(0,-3,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage52,4 → 53,60.04ΔRGB(-1,-1,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage115,15 → 118,150.04ΔRGB(1,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage66,4 → 67,50.03ΔRGB(-2,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage113,4 → 114,50.03ΔRGB(0,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage3,5 → 4,60.03ΔRGB(1,1,1)antialiasing coverage residue on a shared outline
AntialiasCoverage121,8 → 121,110.03ΔRGB(-1,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage124,12 → 124,150.03ΔRGB(-1,-3,-3)antialiasing coverage residue on a shared outline
AntialiasCoverage7,0 → 8,10.03ΔRGB(2,2,2)antialiasing coverage residue on a shared outline
AntialiasCoverage79,4 → 79,50.03ΔRGB(4,4,4)antialiasing coverage residue on a shared outline
AntialiasCoverage72,5 → 73,60.03ΔRGB(3,3,3)antialiasing coverage residue on a shared outline
AntialiasCoverage58,6 → 59,80.03ΔRGB(2,2,2)antialiasing coverage residue on a shared outline
AntialiasCoverage5,13 → 7,130.03ΔRGB(1,1,1)antialiasing coverage residue on a shared outline
AntialiasCoverage78,18 → 80,190.03ΔRGB(1,1,1)antialiasing coverage residue on a shared outline
AntialiasCoverage137,3 → 137,40.02ΔRGB(1,3,2)antialiasing coverage residue on a shared outline
AntialiasCoverage10,9 → 10,100.02ΔRGB(-2,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage10,12 → 10,130.02ΔRGB(-2,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage118,12 → 118,130.02ΔRGB(0,-1,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage20,15 → 21,150.02ΔRGB(-1,-1,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage32,15 → 34,150.02ΔRGB(-1,-1,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage92,15 → 93,150.02ΔRGB(-1,-1,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage73,17 → 75,170.02ΔRGB(2,2,2)antialiasing coverage residue on a shared outline
AntialiasCoverage2,2 → 3,30.02ΔRGB(-2,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage43,4 → 43,50.02ΔRGB(4,4,4)antialiasing coverage residue on a shared outline
AntialiasCoverage96,4 → 96,50.02ΔRGB(4,4,4)antialiasing coverage residue on a shared outline
AntialiasCoverage120,6 → 120,70.02ΔRGB(-1,-4,-4)antialiasing coverage residue on a shared outline
source · cases/generated-content/generated-content-target-counter-page.html
1<!doctype html>
2<html>
3<head>
4  <meta charset="utf-8">
5  <style>
6    @page { size: 220px 160px; margin: 0; }
7
8    html { font-family: ParitySans; line-height: 1.5; }
9
10    * { box-sizing: border-box; margin: 0; }
11
12    body {
13      padding: 12px;
14      background: #fff;
15      font-size: 20px;
16      line-height: 30px;
17    }
18
19    /* Isolate target-counter from implementation-specific link defaults. */
20    a { color: #111; text-decoration: none; }
21
22    a::after {
23      content: ' p.' target-counter(attr(href), page);
24      color: #d7263d;
25    }
26
27    .spacer { height: 120px; }
28
29    /* The target exists to establish a page, not to test UA heading defaults. */
30    h1 { font-size: 20px; font-weight: 400; line-height: 30px; }
31  </style>
32</head>
33<body>
34  <a href="#target">See target</a>
35  <div class="spacer"></div>
36  <h1 id="target">Target</h1>
37</body>
38</html>

target-text(attr(href)) — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS visually equivalent · no rejecting defect · thresholded evidence 0.03% · raw 0.03% (145 px) generated-content-target-text · target-textPASS via CSS-scale observation: conserved sub-CSS coverageAntialiasCoveragemissing 0.2%extra 0.2%ΔE 20.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 cross-reference link appends its target element's text using target-text(attr(href)). The target is ordinary styled text and the link disables its UA underline, isolating cross-reference resolution from independent heading, font-synthesis, and text-decoration behavior. The authenticated standards-derived Chrome reference materializes the CSS Generated Content Level 3 required result because browsers do not implement target-text(). Catches: An attr()/counter-only content implementation passes generated string tests but cannot resolve target element text.
regions (75 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
Extra212759,5 → 71,136total 0.01% · largest 0.003224%
ColorErr309160,5 → 74,1334total 0.05% · largest 0.02%
Missing242770,5 → 74,134total 0.01% · largest 0.002149%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage69,5 → 74,90.02ΔRGB(10,56,50)antialiasing coverage residue on a shared outline
AntialiasCoverage69,10 → 71,130.01ΔRGB(-12,-65,-58)antialiasing coverage residue on a shared outline
Extra59,8 → 59,100.003224candidate adds paint absent from reference (0.003224%)
AntialiasCoverage60,8 → 60,100.003224ΔRGB(-23,-125,-111)antialiasing coverage residue on a shared outline
Missing74,8 → 74,90.002149candidate lacks paint present in reference (0.002149%)
AntialiasCoverage71,8 → 71,80.001612ΔRGB(-18,-100,-89)antialiasing coverage residue on a shared outline
Extra69,12 → 69,120.001075candidate adds paint absent from reference (0.001075%)
Missing71,5 → 71,50.000537candidate lacks paint present in reference (0.000537%)
Missing71,5 → 71,50.000537candidate lacks paint present in reference (0.000537%)
Missing71,5 → 71,50.000537candidate lacks paint present in reference (0.000537%)
Missing72,6 → 72,60.000537candidate lacks paint present in reference (0.000537%)
Missing72,6 → 72,60.000537candidate lacks paint present in reference (0.000537%)
Missing72,6 → 72,60.000537candidate lacks paint present in reference (0.000537%)
Missing73,7 → 73,70.000537candidate lacks paint present in reference (0.000537%)
Missing73,7 → 73,70.000537candidate lacks paint present in reference (0.000537%)
Missing73,7 → 73,70.000537candidate lacks paint present in reference (0.000537%)
Missing74,8 → 74,80.000537candidate lacks paint present in reference (0.000537%)
Missing74,8 → 74,80.000537candidate lacks paint present in reference (0.000537%)
Missing74,10 → 74,100.000537candidate lacks paint present in reference (0.000537%)
Missing74,10 → 74,100.000537candidate lacks paint present in reference (0.000537%)
Missing73,10 → 73,100.000537candidate lacks paint present in reference (0.000537%)
Missing73,11 → 73,110.000537candidate lacks paint present in reference (0.000537%)
Missing73,11 → 73,110.000537candidate lacks paint present in reference (0.000537%)
Missing72,11 → 72,110.000537candidate lacks paint present in reference (0.000537%)
Missing72,12 → 72,120.000537candidate lacks paint present in reference (0.000537%)
Missing72,12 → 72,120.000537candidate lacks paint present in reference (0.000537%)
Missing71,12 → 71,120.000537candidate lacks paint present in reference (0.000537%)
Missing71,12 → 71,120.000537candidate lacks paint present in reference (0.000537%)
Missing71,13 → 71,130.000537candidate lacks paint present in reference (0.000537%)
Missing70,13 → 70,130.000537candidate lacks paint present in reference (0.000537%)
Extra70,5 → 70,50.000537candidate adds paint absent from reference (0.000537%)
Extra69,5 → 69,50.000537candidate adds paint absent from reference (0.000537%)
Extra69,5 → 69,50.000537candidate adds paint absent from reference (0.000537%)
Extra69,6 → 69,60.000537candidate adds paint absent from reference (0.000537%)
Extra69,6 → 69,60.000537candidate adds paint absent from reference (0.000537%)
Extra69,6 → 69,60.000537candidate adds paint absent from reference (0.000537%)
Extra70,7 → 70,70.000537candidate adds paint absent from reference (0.000537%)
Extra70,7 → 70,70.000537candidate adds paint absent from reference (0.000537%)
Extra70,7 → 70,70.000537candidate adds paint absent from reference (0.000537%)
Extra71,8 → 71,80.000537candidate adds paint absent from reference (0.000537%)
Extra71,10 → 71,100.000537candidate adds paint absent from reference (0.000537%)
Extra70,10 → 70,100.000537candidate adds paint absent from reference (0.000537%)
Extra70,11 → 70,110.000537candidate adds paint absent from reference (0.000537%)
Extra70,11 → 70,110.000537candidate adds paint absent from reference (0.000537%)
Extra69,11 → 69,110.000537candidate adds paint absent from reference (0.000537%)
Extra69,12 → 69,120.000537candidate adds paint absent from reference (0.000537%)
Extra69,12 → 69,120.000537candidate adds paint absent from reference (0.000537%)
Extra69,13 → 69,130.000537candidate adds paint absent from reference (0.000537%)
Extra70,13 → 70,130.000537candidate adds paint absent from reference (0.000537%)
AntialiasCoverage70,6 → 70,60.000537ΔRGB(-18,-98,-88)antialiasing coverage residue on a shared outline
AntialiasCoverage70,7 → 70,70.000537ΔRGB(-18,-99,-89)antialiasing coverage residue on a shared outline
AntialiasCoverage70,7 → 70,70.000537ΔRGB(-18,-99,-89)antialiasing coverage residue on a shared outline
AntialiasCoverage71,7 → 71,70.000537ΔRGB(-18,-100,-89)antialiasing coverage residue on a shared outline
AntialiasCoverage74,10 → 74,100.000537ΔRGB(16,88,79)antialiasing coverage residue on a shared outline
AntialiasCoverage74,10 → 74,100.000537ΔRGB(1,1,1)antialiasing coverage residue on a shared outline
AntialiasCoverage73,10 → 73,100.000537ΔRGB(16,88,79)antialiasing coverage residue on a shared outline
AntialiasCoverage74,10 → 74,100.000537ΔRGB(1,1,1)antialiasing coverage residue on a shared outline
AntialiasCoverage73,10 → 73,100.000537ΔRGB(16,88,79)antialiasing coverage residue on a shared outline
AntialiasCoverage74,10 → 74,100.000537ΔRGB(1,1,1)antialiasing coverage residue on a shared outline
AntialiasCoverage73,11 → 73,110.000537ΔRGB(16,87,78)antialiasing coverage residue on a shared outline
AntialiasCoverage73,11 → 73,110.000537ΔRGB(1,1,1)antialiasing coverage residue on a shared outline
AntialiasCoverage72,11 → 72,110.000537ΔRGB(16,87,78)antialiasing coverage residue on a shared outline
AntialiasCoverage73,11 → 73,110.000537ΔRGB(1,1,1)antialiasing coverage residue on a shared outline
AntialiasCoverage72,11 → 72,110.000537ΔRGB(16,87,78)antialiasing coverage residue on a shared outline
source · cases/generated-content/generated-content-target-text.html
1<!DOCTYPE html><html><head><meta charset='utf-8'><style>@page{size:344px 152px;margin:0}html{font-family:ParitySans;line-height:1.5}*{margin:0;box-sizing:border-box}body{padding:12px;background:#fff;font-size:20px;line-height:30px}a{text-decoration:none}a::after{content:' → ' target-text(attr(href));color:#d7263d}.spacer{height:40px}</style></head><body><a href='#target'>Jump</a><div class='spacer'></div><div id='target'>Deep Section</div></body></html>