Чтобы ответить из комментариев, это похоже на проблему с используемым шрифтом - кажется, что он рисует выше «верхней» базовой линии (см. Ниже).
Вот немного измененная версия фрагмента, в которой не отображается проблема с использованием Courier New в качестве моноширинного шрифта по умолчанию в настройках браузера.
"use strict";
var c = document.getElementById("screen");
var ctx = c.getContext("2d");
ctx.font = "8px monospace";
ctx.textBaseline = "top";
var charCode = "A".charCodeAt(0);
for (var y = 0; y < 200; y = y + 8, ++ charCode) {
var char = String.fromCharCode( charCode);
for (var x = 0; x < 320; x = x + 8) {
ctx.fillText(char, x, y)
}
}
canvas {border: 1px solid red;}
<canvas id="screen" width="320" height="200"></canvas>
(обновление) Установка значения свойства baseLine
контекста в"top" устанавливает базовую линию на вершину квадрата "em" ( ссылка MDN );
Это изображение из этого вопроса о Tex демонстрирует, что это можетсреднее значение для рисования глифов шрифта
![enter image description here](https://i.stack.imgur.com/oqGJN.png)
Источник
Если шрифт нарисован выше верхней части квадрата emэта часть глифа не будет отображаться в первой линии, нарисованной на холсте.Рисунок также подразумевает, что шрифты могут иметь верхнюю ограничительную линию над полем em.
Это, похоже, относится к шрифту, используемому в системе Ubuntu.Обратите внимание, что «monospace» - это не специфическое семейство шрифтов, а не шрифт.Вы можете найти фактический используемый шрифт, введя «monospace» в поле поиска на странице настроек Firefox и нажав кнопку «Дополнительно», представленную под шрифтами и цветами.