Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /html/canvas/element/text/2d.text.variationSelectors.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<title>Canvas text: Variation selectors affect glyph width</title>
<link rel="author" title="Euclid Ye" href="mailto:yezhizhenjiakang@gmail.com">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="stylesheet" href="/css/css-fonts/support/css/variation-sequences.css">
<canvas id="canvas" width="400" height="200"></canvas>
<script>
test(() => {
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
ctx.font = '32px ColorEmojiFont';
// Anchor: U+2693
const base = '\u2693';
const vs15 = '\uFE0E'; // text selector
const vs16 = '\uFE0F'; // emoji selector
const widthText = ctx.measureText(base + vs15).width;
const widthEmoji = ctx.measureText(base + vs16).width;
// Emoji should be wider.
assert_not_equals(widthText, widthEmoji, 'Widths with VS15 and VS16 should differ');
}, 'Variation selectors (VS15/VS16) affect text width');
</script>