Fixing tag errors and tag issues
If a tag is omitted, duplicated, or misplaced, a warning symbol appears on the QA icon.

In case of a tag error, the symbol is red.

Click on that icon to move to the segment where the tag issue has been found.
Understanding tag issues
Matecat warns about three types of issues:
- Tag mismatch
- Tag order mismatch
- Tag ID mismatch
1.❗Tag mismatch
Matecat alerts users when a tag from the source segment, is missing in the target segment. This generated a tag mismatch and a warning message.


The tag is missing in the target segment.
This kind of error needs to be fixed, otherwise, untranslated content will be generated in the target file.

2. ❕Tag order mismatch
Matecat also alerts users when tags from the source segment are not placed in the same position as the target one. A light orange warning message appears under the target segment.


Tag in the target segment is placed in a different position than in the source.
Tag order mismatches generally don’t prevent the download and don’t create formatting issues in the target file.
We do suggest any way to fix order mismatches.
Notice that in some cases the translator would need to change the tag order in the target segment, generating a tag order mismatch, because of target language grammar or expressive rules.
Let’s make an example

In this case in the target segment, we need to generate a tag order mismatch, to respect the sentence grammar order, that is different from Italian to German.
3. ❗Tag ID mismatch
Matecat alerts users when tag IDs from the source segment do not correspond to the tag IDs in the target.

Warning message: Tag ID mismatch: Check and edit tags with differing IDs. In this case the opening tag 2 is missing and there is another opening tag 1 in that position.
This is a tag error so, if ignored, it will generate untranslated content in the target file.
How to fix tag issues?
There are basically four ways to correct tag issues:
1. ➡️Place the cursor next to the location where the tag is missing and insert the < symbol or use the short cut Alt+t.
A window will open. Click on the tag you need to add to your translation.

2. ➡️Click on the tag in the source segment to select it, then drag and drop it into the target segment;
3. ➡️Press on the

icon to copy the tags from the source to the target segment (the tags are added to the end of the text in the target segment and appear in the same order as in the source), as you can see below:
Tagging Errors
Each error in Honeybadger has tags. Tags can be used to filter results when searching and can even apply to integrations so that only errors with a combination of certain tags trigger an email or a Slack message, for example.
Tags can be used to create custom workflows, such as:
- Find all errors tagged «badgers» and resolve them.
- Tag critical errors as «critical» and configure PagerDuty to alert you only when a critical error happens.
- If you have errors which aren’t actionable (but you still want to know about them), you could tag them with «low_priority» and exclude those errors when automatically creating issues via the GitHub integration.
- Tag all errors that happen in an area of your app with the name of the team that is responsible for them, then notify their Slack channel for only those errors.
These are just examples: you can use tags however you want!
While you can always add tags to existing errors through the Honeybadger UI, they are most useful when you add them programmatically as the errors happen. There are two ways to add tags to errors from JavaScript:
Tagging Errors in Global Context
Every error which is reported within the current context will have the tags «critical» and «badgers» added:
Class ErrorsTag
Delimiter for displaying multiple error messages. Defaults to the br tag.
HTML Standard Attribute
Specifies the HTML element that is used to render the enclosing errors.
Enable/disable HTML escaping of rendered values.
HTML Standard Attribute
HTML Standard Attribute
HTML Event Attribute
HTML Event Attribute
HTML Event Attribute
HTML Event Attribute
HTML Event Attribute
HTML Event Attribute
HTML Event Attribute
HTML Event Attribute
HTML Event Attribute
HTML Event Attribute
Path to errors object for data binding
HTML Standard Attribute
HTML Standard Attribute
Field Summary
Modifier and Type
Description
static final String
The key under which this tag exposes error messages in the page context scope .
static final String
The HTML ‘ span ‘ tag.
Fields inherited from class org.springframework.web.servlet.tags.form.AbstractHtmlElementTag
Fields inherited from class org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag
Fields inherited from class org.springframework.web.servlet.tags.RequestContextAwareTag
Fields inherited from class jakarta.servlet.jsp.tagext.TagSupport
Fields inherited from interface jakarta.servlet.jsp.tagext.BodyTag
Fields inherited from interface jakarta.servlet.jsp.tagext.IterationTag
Fields inherited from interface jakarta.servlet.jsp.tagext.Tag
Constructor Summary
Constructors
Constructor
Description
Method Summary
All Methods Instance Methods Concrete Methods
Modifier and Type
Description
Get the value for the HTML ‘ id ‘ attribute.
protected void
Exposes any bind status error messages under this key in the PageContext.PAGE_SCOPE .
Return the delimiter to be used between error messages.
Get the HTML element must be used to render the error messages.
Get the value for the HTML ‘ name ‘ attribute.
protected void
Removes any bind status error messages that were previously stored under this key in the PageContext.PAGE_SCOPE .
protected void
Set the delimiter to be used between error messages.
Set the HTML element must be used to render the error messages.
protected boolean
Should rendering of this tag proceed at all?
Methods inherited from class org.springframework.web.servlet.tags.form.AbstractHtmlElementBodyTag
Methods inherited from class org.springframework.web.servlet.tags.form.AbstractHtmlElementTag
Methods inherited from class org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag
Methods inherited from class org.springframework.web.servlet.tags.form.AbstractFormTag
Methods inherited from class org.springframework.web.servlet.tags.HtmlEscapingAwareTag
Methods inherited from class org.springframework.web.servlet.tags.RequestContextAwareTag
Methods inherited from class jakarta.servlet.jsp.tagext.TagSupport
Methods inherited from class java.lang.Object
Methods inherited from interface jakarta.servlet.jsp.tagext.BodyTag
Methods inherited from interface jakarta.servlet.jsp.tagext.IterationTag
Methods inherited from interface jakarta.servlet.jsp.tagext.Tag
Field Details
MESSAGES_ATTRIBUTE
public static final String MESSAGES_ATTRIBUTE
The key under which this tag exposes error messages in the page context scope .
SPAN_TAG
public static final String SPAN_TAG
The HTML ‘ span ‘ tag.
Constructor Details
ErrorsTag
public ErrorsTag ()
Method Details
setElement
public void setElement (String element)
Set the HTML element must be used to render the error messages. Defaults to an HTML ‘ ‘ tag.
getElement
public String getElement ()
Get the HTML element must be used to render the error messages.
setDelimiter
public void setDelimiter (String delimiter)
Set the delimiter to be used between error messages. Defaults to an HTML ‘
‘ tag.
getDelimiter
public String getDelimiter ()
Return the delimiter to be used between error messages.
autogenerateId
protected String autogenerateId () throws JspException
Get the value for the HTML ‘ id ‘ attribute. Appends ‘ .errors ‘ to the value returned by AbstractDataBoundFormElementTag.getPropertyPath() or to the model attribute name if the tag’s ‘ path ‘ attribute has been omitted.
getName
@Nullable protected String getName () throws JspException
Get the value for the HTML ‘ name ‘ attribute. Simply returns null because the ‘ name ‘ attribute is not a validate attribute for the ‘ span ‘ element.
shouldRender
protected boolean shouldRender () throws JspException
Should rendering of this tag proceed at all? Only renders output when there are errors for the configured path .
renderDefaultContent
protected void renderDefaultContent (TagWriter tagWriter) throws JspException
exposeAttributes
protected void exposeAttributes () throws JspException
Exposes any bind status error messages under this key in the PageContext.PAGE_SCOPE . Only called if shouldRender() returns true .
removeAttributes
protected void removeAttributes ()
Removes any bind status error messages that were previously stored under this key in the PageContext.PAGE_SCOPE .
Частые ошибки в HTML-коде
Ошибки в коде — это несоответствия правилам и синтаксису языка HTML, использование некорректных или недопустимых тегов, атрибутов или значений. Ошибки приводят к неправильному отображению элементов, снижению производительности и доступности сайта.
Что нужно, чтобы писать код правильно и не допускать ошибок? Знать самые распространённые ошибки и не совершать их.
Вложенный тег закрывается позже родительского
Пример текста на сайте.
В этом примере элемент
закрывается после , хотя является вложенным. Это может привести к проблемам в отображении элементов. Такая ошибка повторяется из-за невнимательности и некорректной структуры HTML-документа. Если вы будете следить за вложенностью, то не ошибётесь, где должен закрываться вложенный тег, а где — его родитель.
Правильный способ вложения этих элементов:
Пример текста на сайте.
Пример корректного написания кода, где видна вложенность и шансов совершить ошибку меньше:
Нет закрывающего тега
Повторяются идентификаторы
.
Тег id — это идентификатор, который связывает определённое поле ввода input с текстом подписи. В каждой форме должен быть свой уникальный id , чтобы формой можно было пользоваться и отправлять данные на сервер.
У пароля из примера выше должен быть свой уникальный id :
Неправильное использование семантических тегов
Курс для фронтендеров
… Купить курс
Здесь ошибочно используется вместо кнопки .
Тег — это универсальный контейнер без собственного значения. Он используется, когда нужно разметить некрупный элемент вёрстки или отдельный фрагмент с текстом. Его использование не создаст кнопку, которая может открыть другую страницу или форму для записи.
Кнопка отвечает за выполнение определённой функции: добавить в корзину, купить, отправить, проголосовать и другие.
Курс для фронтендеров
…
Правило для определения :
Если перед вами раздел, которому сложно найти определение, получается что-то наподобие «новости и фотогалерея» или «правая колонка» — можно разметить как .
Семантические теги , , предназначены для выделения основных структурных блоков на странице сайта, а теги , , , — для разметки крупных смысловых разделов. Все теги должны быть использованы в соответствии со своим назначением.
- Что такое семантическая вёрстка и зачем она нужна
- Как сделать кнопку в HTML
Отсутствие атрибута alt для изображений img
Атрибут alt задаёт альтернативный текст, описывающий картинку для пользователей, у которых изображение очень долго загружается или вообще недоступно. Также alt помогает сайтам оставаться доступными, например, для категории пользователей, которая не имеет возможности видеть картинки.
Определение уровня заголовка по размеру текста на макете
Мы — молодая креативная компания
Обувь и аксессуары
… Мы надёжные партнёры и поставщики
… Уже много лет мы сотрудничаем с самыми крупными производителями
…
Не весь крупный текст — заголовки. Основная роль заголовка — резюмирующая, он сжато передаёт содержание последующего текста. Прочитав заголовок, пользователь должен легко понять, чему посвящён раздел. Также не все заголовки видимые на странице сайта, они могут быть прописаны в разметке и скрыты, так как их задача — помогать структурировать страницу.
Интернет магазин «Фактура»
Товары
… О нас
… Производители
…
Также неверно обозначать заголовок не специальными тегами h1-h6 , а использовать выделение текста тегами или .
Включать в main то, что повторяется на других страницах
Это может быть навигация, копирайты и так далее.
Тег выделяет основное содержание страницы, которое не повторяется на других страницах. И на странице используется один тег . Если навигация одинаковая на всех страницах сайта, то лучше размещать её в .
Неверное обозначение комментариев
Если комментарий неправильно разметить, то он будет виден на странице.
Комментарии начинаются последовательностью
-
могут находиться только теги
, которые обозначают элементы или пункты списка. Пунктов может быть неограниченное количество, но не менее одного.
Материалы по теме
- Как проверить валидность HTML-разметки
- Как сделать картинку ссылкой
- Флексы для начинающих
- Шаблон HTML-формы
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
Читать дальше

Что такое Lazy Loading и как её включить на сайте
Ленивая загрузка (буквально, lazy loading) — это возможность отложить загрузку ненужного прямо сейчас медиаконтента.
Ленивая загрузка делает сайт быстрее и экономит трафик, если у пользователя мобильный интернет с ограничениями.
- 22 ноября 2023

Знакомство с HTML
Привет, будущие фронтенд-разработчики! Добро пожаловать в увлекательный мир веб-разработки. Перед тем как двигаться дальше, давайте разберёмся с основами — языком разметки гипертекста или просто HTML.
HTML (Hypertext Markup Language) — это стандартный язык, который используется для создания веб-страниц. Представьте, что ваша веб-страница — это книга. Тогда HTML — это скелет этой книги, костяк, который определяет структуру: где будет заголовок, абзацы, изображения и так далее.
- 1 ноября 2023

Специальные символы в HTML
HTML использует особенные комбинации символов, чтобы корректно отображать определенные знаки на веб-страницах. Например, вместо простого знака «меньше» мы видим комбинацию <. В этой статье представлен список таких символов. Это небольшой справочник для тех, кто хочет быстро найти нужный код.
- 23 октября 2023

Простое диалоговое окно на HTML
Вот короткое демо:
- 18 октября 2023

Зачем нужен метатег viewport
Каждый из нас хоть раз в жизни сталкивался с веб-страницами, которые кажутся «сломанными» или странно отображаются на мобильных устройствах. Одной из причин такого поведения может быть отсутствие маленького, но важного элемента в коде страницы — метатега viewport .
Метатеги — это инструкции для браузера о том, как отображать содержимое страницы. Один из таких метатегов — viewport , который говорит браузеру, как масштабировать и отображать страницу на разных устройствах, особенно на смартфонах и планшетах.
Важно, чтобы сайты классно выглядели не только на компьютерах, но и на маленьких экранах смартфона. Если не использовать viewport , то сайт может выглядеть как уменьшенная версия десктопного сайта на мобильном экране, что делает его трудночитаемым и неудобным для использования. Конечно, нужно ещё много всего сделать для адаптивности, но viewport тоже нужен.
- 18 сентября 2023

Атрибут class в HTML на примерах
Атрибут class используется для добавления CSS-классов элементам HTML. Классы позволяют применять одни и те же стили CSS или поведение JavaScript к разным элементам на странице.
Так, одному элементу можно присвоить один или несколько классов, разделяя их пробелами.
- 14 сентября 2023

В чём отличия цитат blockquote, cite и q
В HTML есть разные теги для цитирования и указания источников. Основные из них: , и . Давайте разберёмся в их различиях.
- 12 сентября 2023

Осмысленный alt-текст: 6 правил
Альтернативный текст — это описание изображения словами. Это описание должно помогать людям, которые читают или слышат это описание, иначе оно не нужно и лучше вообще его не указывать.
Мы уже обсудили основные правила написания alt-текста для фотографий и изображений. В этот раз поговорим о том, каким именно должно быть описание, чтобы в нём был смысл.
- 31 июля 2023

Растровая и векторная графика
Давайте попробуем разобраться, в чём отличие растровой графики от векторной.
- 13 июня 2023

Как понять, что перед вами заголовок
Заголовки используются для организации и структурирования содержимого на сайте. В HTML существует шесть уровней заголовков, обозначаемых тегами от до . Каждый уровень заголовка имеет свой семантический вес, где имеет наибольший вес, а — наименьший.
Часто кажется, что заголовок — это простой и понятный тег. Но это впечатление обманчиво, потому что не всегда крупный и выделенный текст на макете является заголовком.
При вёрстке сайта важно соблюдать семантику, чтобы все теги использовались корректно и ресурс работал без ошибок. Если напутать уровни заголовков, то структура страницы будет не семантичной, а скринридеры неправильно прочтут сайт.
В статье разберёмся, как верно определять заголовки по макету, какие из них лучше делать скрытыми и почему.
- 8 июня 2023