letter-spacing end-edge behavior sampler

#40771973 csswg-drafts#1518 Runtime flag: LetterSpacingEndEdgeSuppression

Rendered vs Expected

Each case uses the same boundary layout: container width 4.5ch, with the first two letters in a span that has letter-spacing: 1ch.

Case: default runtime (no flag)
12345
AAA
Expected default runtime screenshot
Case: experimental runtime flag enabled
12345
AAA
Expected experimental runtime screenshot

How to run

# Default behavior
chrome --user-data-dir=/tmp/ls-default \
  https://static.januschka.com/i-40771973/index.html

# Experimental behavior behind runtime flag
chrome --user-data-dir=/tmp/ls-flag \
  --enable-blink-features=LetterSpacingEndEdgeSuppression \
  https://static.januschka.com/i-40771973/index.html
Current behavior

The trailing spacing at the end edge is still applied, and the third letter may wrap.

Flagged behavior

With LetterSpacingEndEdgeSuppression, trailing spacing at the end edge is suppressed, so all three letters stay on one line.

Current WPT snapshot (flag enabled)

Command baseline:

run_web_tests.py --additional-driver-flag=--enable-blink-features=LetterSpacingEndEdgeSuppression
external/wpt/css/CSS2/text/letter-spacing-079.xht
external/wpt/css/CSS2/text/letter-spacing-080.xht
external/wpt/css/css-text/letter-spacing/letter-spacing-200.html
external/wpt/css/css-text/letter-spacing/letter-spacing-201.html
external/wpt/css/css-text/letter-spacing/letter-spacing-202.html
external/wpt/css/css-text/letter-spacing/letter-spacing-203.html
external/wpt/css/css-text/letter-spacing/letter-spacing-204.html
external/wpt/css/css-text/letter-spacing/letter-spacing-205.html
external/wpt/css/css-text/letter-spacing/letter-spacing-206.html
external/wpt/css/css-text/letter-spacing/letter-spacing-bidi-003.xht
external/wpt/css/css-text/letter-spacing/letter-spacing-bidi-004.xht
external/wpt/css/css-text/letter-spacing/letter-spacing-bidi-005.xht
external/wpt/css/css-text/letter-spacing/letter-spacing-nesting-003.xht

Latest local snapshot:

Notes:

Per-test screenshots (Rendered vs Expected)

Rendered uses live WPT HTML (in your browser). Expected uses our captured reference screenshot. Diff overlays changed pixels in red.

Related skipped WPTs

These tests are currently listed in NeverFixTests due to no consensus / web compatibility concerns: