Also adds WPT reftests to validate alignment behavior in horizontal and vertical writing modes with the different `alignment-baseline` values. Additionally: - The `alignment-baseline: middle` tests have failing expectations. This is because the existing implementation does not match the css-inline-3 definition (which the new WPTs follow). See Bug 2030203. - The WidthTest-Regular.otf support font was updated to remove its unusual ideographic-under baseline value, which affected its synthesized central baseline. With the new support for `alignment-baseline: central`, this broke a number of `text-combine-upright-compression-*` WPT reftests. The non-centered baseline values were removed from this test using FontForge, so that the synthesized central baseline matched the expectation of the test references. Differential Revision: https://phabricator.services.mozilla.com/D292136
55 lines
2.0 KiB
HTML
55 lines
2.0 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<link rel="help" href="https://drafts.csswg.org/css-inline-3/#baseline-synthesis-box">
|
|
<link rel="match" href="alignment-baseline-vertical-rl-003-ref.html">
|
|
<link rel="stylesheet" href="/fonts/baseline-diagnostic/baseline-diagnostic-font.css">
|
|
<script src="support/variant-class.js"></script>
|
|
<meta name="assert" content="alignment-baseline synthesizes baselines of atomic inlines including margins" />
|
|
<meta name="flags" content="image" />
|
|
<meta charset="utf-8">
|
|
<meta name="variant" content="?class=baseline">
|
|
<meta name="variant" content="?class=text-bottom">
|
|
<meta name="variant" content="?class=alphabetic">
|
|
<meta name="variant" content="?class=ideographic">
|
|
<meta name="variant" content="?class=middle">
|
|
<meta name="variant" content="?class=central">
|
|
<meta name="variant" content="?class=mathematical">
|
|
<meta name="variant" content="?class=hanging">
|
|
<meta name="variant" content="?class=text-top">
|
|
<style>
|
|
:root {
|
|
font: 200px/1 'BaselineDiagnostic';
|
|
}
|
|
|
|
#container {
|
|
writing-mode: vertical-rl;
|
|
}
|
|
|
|
img {
|
|
width: 100px;
|
|
height: 100px;
|
|
margin-block-start: -10px;
|
|
margin-block-end: -30px;
|
|
|
|
/* Visualize block start/end margins */
|
|
box-shadow:
|
|
inset -10px 0px black,
|
|
inset 30px 0px 0px black;
|
|
}
|
|
|
|
.baseline :is(#target, img) { alignment-baseline: baseline; }
|
|
.text-bottom :is(#target, img) { alignment-baseline: text-bottom; }
|
|
.alphabetic :is(#target, img) { alignment-baseline: alphabetic; }
|
|
.ideographic :is(#target, img) { alignment-baseline: ideographic; }
|
|
.middle :is(#target, img) { alignment-baseline: middle; }
|
|
.central :is(#target, img) { alignment-baseline: central; }
|
|
.mathematical :is(#target, img) { alignment-baseline: mathematical; }
|
|
.hanging :is(#target, img) { alignment-baseline: hanging; }
|
|
.text-top :is(#target, img) { alignment-baseline: text-top; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<span id="container">X<img src="/images/checkerboard.svg"></span>
|
|
</body>
|
|
</html> |