В экосистеме декларативных визуализаций Vega-Lite и низкоуровневого
движка Vega поле description относится к метауровню
описания графика и служит семантическим комментарием к спецификации.
descriptionПоле description не влияет на вычисление данных,
отрисовку геометрии или работу трансформаций. Его задача — фиксировать
смысл визуализации в текстовой форме, которая может быть использована
внешними системами:
В отличие от визуальных свойств (mark,
encoding, transform), description
не участвует в графе исполнения спецификации.
В Vega-Lite поле description может появляться на верхнем
уровне объекта спецификации:
{
"description": "Распределение продаж по регионам за 2025 год",
"data": { "url": "sales.csv" },
"mark": "bar",
"encoding": {
"x": { "field": "region", "type": "nominal" },
"y": { "field": "revenue", "type": "quantitative" }
}
}
В Vega аналогичная концепция применяется как часть общего JSON-графа сцены:
{
"description": "Линейный график временного ряда температуры",
"data": [{ "name": "table" }],
"marks": []
}
Хотя description и title часто используются
совместно, их семантика различается:
title — визуально отображаемый заголовок графикаdescription — невизуальное текстовое описание
смыслаКлючевое отличие заключается в том, что description
может вообще не отображаться в интерфейсе, но при этом сохраняться в DOM
или JSON-структуре для внешнего потребления.
Пример:
{
"title": "Продажи по регионам",
"description": "Гистограмма показывает суммарные продажи по регионам за 12 месяцев с агрегацией по сумме выручки"
}
descriptionОдной из основных причин существования поля является поддержка
доступности (accessibility). В сложных визуализациях, где графическое
представление теряет семантическую полноту, description
выступает как текстовый эквивалент.
Типичные сценарии:
Пример более насыщенного описания:
{
"description": "Диаграмма показывает рост продаж с января по декабрь. Наблюдается устойчивый рост во втором квартале и спад в начале четвёртого квартала. Данные агрегированы по месяцам."
}
description и жизненный цикл визуализацииНа уровне рендеринга Vega/Vega-Lite спецификация проходит несколько этапов:
description участвует только в первом этапе как
метаданные и далее транслируется без изменений.
Важно, что компилятор Vega-Lite не модифицирует значение
description и не использует его для оптимизации графа.
При использовании рендеринга в браузере через SVG или Canvas поле
description может быть связано с DOM-атрибутами:
aria-labelaria-descriptionВ некоторых интеграциях Vega runtime сохраняет
description в скрытых DOM-элементах, чтобы обеспечить
доступность без вмешательства в визуальную структуру.
Пример логической привязки:
<svg aria-label="Распределение продаж">
<!-- графические элементы -->
</svg>
Помимо description, спецификации поддерживают более
широкий набор метаполей:
nameИспользуется для идентификации компонента внутри сцены:
{
"name": "sales_chart"
}
usermetaПозволяет прикреплять произвольные данные:
{
"usermeta": {
"author": "data-team",
"version": "1.3",
"tags": ["finance", "dashboard"]
}
}
description как
часть метамоделиВ отличие от usermeta, поле description
стандартизировано и имеет ожидаемую семантику: человекочитаемое
пояснение.
В составных визуализациях Vega-Lite (hconcat,
vconcat, facet, repeat) каждый
вложенный блок может иметь собственное description.
Пример:
{
"vconcat": [
{
"description": "Верхний график показывает продажи",
"mark": "bar",
"encoding": { }
},
{
"description": "Нижний график показывает прибыль",
"mark": "line",
"encoding": { }
}
]
}
Такое разделение особенно важно в системах аналитики, где один экран содержит несколько смысловых слоёв данных.
При трансляции спецификации Vega-Lite в Vega:
description переносится без измененийКомпилятор рассматривает поле как пассивный атрибут узла сцены.
Поле description считается стабильной частью API
спецификации. Это означает:
В долгоживущих дашбордах это позволяет использовать
description как часть документации, встроенной в саму
визуализацию.
Недопустимо использовать description как источник
данных:
{
"description": "sales > 1000"
}
Это нарушает разделение данных и метаданных.
Чрезмерно длинные или многослойные описания ухудшают читаемость и теряют пользу для accessibility-инструментов.
titleКогда description полностью повторяет
title, метаинформация становится избыточной и теряет
смысловую добавочную ценность.
В корпоративных системах аналитики description часто
используется как:
В таких сценариях он становится частью документационного слоя поверх графа визуализации, не вмешиваясь в его вычислительную модель.