Ну не совсем, CSS Тьюринг-полный только потому, что умеет запоминать клик мышкой.
Окей, мы снова упёрлись в терминологию.
Я о том что машина выполняет инструкции. И не важно, виртуальная или железная. Эти инструкции в человеко-читаемом формате (через какое-то количество абстрактных слоёв) - ЯП
Ну да, компилируется компилятором или интерпретируется интерпретатором. Тут смысл в том, что компилируется логика, а не структурированный текст.
Можно написать интерпретатор какого-то подмножества JSON'a, который в результате интерпретации будет выполнять какие-то действия, но это подмножество - уже не JSON, а вполне себе ЯП, на котором описывается какая-то логика
Нет циклов и всё. Нет сокетов. Нет работы с файловой системой (запросы и подгрузку реализует браузер). Это тупо текст в котором нет логики.
Не, ну можно значения хранить в атрибутах. Отлично, но решения "отображать или нет" будет принимать браузер, руководствуясь таблицами стилей. Любая кнопка, которая не ссылка (а переход у нас тоже обрабатывает браузер) уже вызывает JavaScript (хз чё там у WebAssembly).
Ну вот, промежуточные машины, которые абстрагируют железо или ОС
Нет ветвлений, нет циклов. HTML - язык разметки, которая обрабатывается внешним постпроцессором
..., которые будут крутиться на голом железе
На той же странице есть примеры не тьюринг-полных языков. Но, согласитесь, невозможно написать простейший HTTP Server на регулярке или шейдерах
Полнота по Тьюрингу (https://en.wikipedia.org/wiki/Turing_completeness3)
Про "Видимость работы" почитайте в статье.Тот же безвиз (да, уровень жизни важнее, чем туризм, но) это всё таки не видимость.