Click here to download the Blitz Browser!

WPT

This page compares scores on the Web Platform Tests across web engines, using the latest master runs from wpt.fyi and Blitz's own test runner.


wpt / html / canvas / element / text

Spec: https://html.spec.whatwg.org/multipage/canvas.html#2dcontext ↗

Runs: Chrome 155.0.8040.0 (wpt@476394464, 2026-09-03) | Firefox 157.0a1 (wpt@476394464, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-a7825 (wpt@a1e944e7a, 2026-09-03) | Servo Servo 0.6 (wpt@7e3d005d7, 2026-09-03) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)

Sort areas: alphabetical | by subtest count

AreaChromeFirefoxSafariLadybirdServoBlitz
Total98.1%203/20747.8%99/20740.1%83/20732.9%68/20734.8%72/2070.0%0/207
TestChromeFirefoxSafariLadybirdServoBlitz
2d.text.align.default.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.align.invalid.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.align.valid.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.baseline.default.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.baseline.invalid.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.baseline.valid.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.direction.default.htmlFAILPASSFAILPASSPASSNOT RUN
2d.text.direction.invalid.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.direction.valid.htmlFAILPASSFAILPASSPASSNOT RUN
2d.text.draw.align.center.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.align.end.ltr.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.align.end.rtl.htmlPASSPASSPASSFAILFAILNOT RUN
2d.text.draw.align.left.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.align.right.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.align.start.ltr.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.align.start.rtl.htmlPASSPASSPASSFAILFAILNOT RUN
2d.text.draw.baseline.alphabetic.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.baseline.bottom.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.baseline.hanging.htmlPASSPASSFAILPASSFAILNOT RUN
2d.text.draw.baseline.ideographic.htmlPASSPASSFAILFAILFAILNOT RUN
2d.text.draw.baseline.middle.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.baseline.top.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.fill.maxWidth.NaN.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.fill.maxWidth.bound.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.fill.maxWidth.fontface.htmlPASSPASSPASSFAILPASSNOT RUN
2d.text.draw.fill.maxWidth.negative.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.fill.maxWidth.small.htmlPASSPASSPASSFAILPASSNOT RUN
2d.text.draw.fill.maxWidth.zero.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.fill.unaffected.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.fontface.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.fontface.notinpage.htmlFAILFAILFAILFAILPASSNOT RUN
2d.text.draw.fontface.repeat.htmlPASSPASSPASSFAILPASSNOT RUN
2d.text.draw.space.basic.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.space.collapse.end.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.space.collapse.nonspace.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.space.collapse.other.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.space.collapse.space.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.space.collapse.start.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.draw.stroke.unaffected.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.drawing.style.absolute.spacing.htmlPASSPASSPASSFAILFAILNOT RUN
2d.text.drawing.style.font-relative.spacing.htmlPASSPASSPASSFAILFAILNOT RUN
2d.text.drawing.style.fontKerning.htmlPASSPASSFAILFAILFAILNOT RUN
2d.text.drawing.style.fontKerning.with.uppercase.htmlPASSPASSFAILFAILFAILNOT RUN
2d.text.drawing.style.fontStretch.settings.htmlPASSPASSFAILFAILFAILNOT RUN
2d.text.drawing.style.fontVariant.settings.htmlPASSPASSFAILFAILFAILNOT RUN
2d.text.drawing.style.invalid.spacing.htmlPASSPASSPASSFAILFAILNOT RUN
2d.text.drawing.style.letterSpacing.change.font.htmlPASSPASSPASSFAILFAILNOT RUN
2d.text.drawing.style.letterSpacing.measure.htmlPASSPASSPASSFAILFAILNOT RUN
2d.text.drawing.style.measure.direction.htmlPASSPASSPASSFAILFAILNOT RUN
2d.text.drawing.style.measure.rtl.text.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.drawing.style.measure.textAlign.htmlPASSPASSPASSFAILPASSNOT RUN
2d.text.drawing.style.nonfinite.spacing.htmlPASSPASSPASSFAILFAILNOT RUN
2d.text.drawing.style.reset.TextRendering.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.drawing.style.reset.fontKerning.none.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.drawing.style.reset.fontKerning.none2.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.drawing.style.textRendering.settings.htmlPASSPASSFAILFAILFAILNOT RUN
2d.text.drawing.style.wordSpacing.change.font.htmlPASSPASSPASSFAILFAILNOT RUN
2d.text.drawing.style.wordSpacing.measure.htmlPASSPASSPASSFAILFAILNOT RUN
2d.text.font.default.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.font.parse.basic.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.font.parse.complex.htmlPASSPASSPASSFAILPASSNOT RUN
2d.text.font.parse.complex2.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.font.parse.family.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.font.parse.invalid.htmlPASSPASSPASSPASSFAILNOT RUN
2d.text.font.parse.size.percentage.default.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.font.parse.size.percentage.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.font.parse.system.htmlPASSFAILPASSPASSPASSNOT RUN
2d.text.font.parse.tiny.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.font.relative_size.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.font.weight.htmlPASSPASSPASSPASSFAILNOT RUN
2d.text.fontVariantCaps.after.reset.font.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.fontVariantCaps1.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.fontVariantCaps2.htmlPASSPASSPASSFAILPASSNOT RUN
2d.text.fontVariantCaps3.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.fontVariantCaps4.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.fontVariantCaps5.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.fontVariantCaps6.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.lang.default.htmlPASSPASSFAILFAILFAILNOT RUN
2d.text.lang.valid.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.measure.actualBoundingBox.htmlPASSPASSPASSFAILFAILNOT RUN
2d.text.measure.actualBoundingBox.small-font.htmlPASSFAILPASSPASSPASSNOT RUN
2d.text.measure.actualBoundingBox.whitespace.htmlPASSPASSFAILFAILPASSNOT RUN
2d.text.measure.baselines.htmlPASSPASSFAILFAILFAILNOT RUN
2d.text.measure.emHeights-low-ascent.htmlPASSPASSFAILFAILFAILNOT RUN
2d.text.measure.emHeights-zero-descent.htmlPASSPASSFAILFAILFAILNOT RUN
2d.text.measure.emHeights.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.measure.fillTextCluster-align.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.fillTextCluster-baseline.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.fillTextCluster-drawing-styles-change.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.fillTextCluster-font-change.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.fillTextCluster-options.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.fillTextCluster-range.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.fontBoundingBox-reduced-ascent.htmlPASSPASSPASSPASSFAILNOT RUN
2d.text.measure.fontBoundingBox-zero-descent.htmlPASSPASSPASSPASSFAILNOT RUN
2d.text.measure.fontBoundingBox.ahem.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.measure.fontBoundingBox.htmlPASSPASSPASSPASSFAILNOT RUN
2d.text.measure.getActualBoundingBox-exceptions.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.getActualBoundingBox-full-text.tentative.html4/40/40/40/40/4NOT RUN
2d.text.measure.getActualBoundingBox.tentative.html6/60/60/60/60/6NOT RUN
2d.text.measure.index-from-offset-edge-cases.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.index-from-offset-edges.tentative.html10/100/100/100/100/10NOT RUN
2d.text.measure.index-from-offset.tentative.html40/400/400/400/400/40NOT RUN
2d.text.measure.lang.htmlPASSPASSFAILFAILFAILNOT RUN
2d.text.measure.lang.inherit.htmlPASSPASSFAILFAILFAILNOT RUN
2d.text.measure.selection-rects-baselines.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.selection-rects-exceptions.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.selection-rects.tentative.html24/240/240/240/240/24NOT RUN
2d.text.measure.strokeTextCluster-align.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.strokeTextCluster-baseline.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.strokeTextCluster-drawing-styles-change.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.strokeTextCluster-font-change.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.strokeTextCluster-options.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.strokeTextCluster-range.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.text-clusters-exceptions.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.text-clusters-position.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.text-clusters-split.tentative.htmlPASSFAILFAILFAILFAILNOT RUN
2d.text.measure.width.basic.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.measure.width.empty.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.measure.width.nullCharacter.htmlFAILFAILPASSFAILPASSNOT RUN
2d.text.measure.width.space.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.setFont.mathFont.htmlPASSPASSPASSPASSPASSNOT RUN
2d.text.variationSelectors.htmlPASSPASSPASSFAILPASSNOT RUN
2d.text.writingmode.htmlPASSFAILFAILPASSPASSNOT RUN
direction-inherit-rtl.htmlPASSPASSFAILFAILFAILNOT RUN
direction-ltr.htmlPASSPASSPASSPASSPASSNOT RUN
direction-rtl.htmlPASSPASSFAILFAILFAILNOT RUN
parent-style-relative-units.html2/22/21/22/22/2NOT RUN