# configuration/constants/tool.htmlhint.constants.ts

> 33 lines of code and 2 definitions.

Tree: GovLab Quality
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/quality#file-quality-configuration-constants-tool-htmlhint-constants-ts
Source text: https://banes-lab.com/source/quality/configuration/constants/tool.htmlhint.constants.ts.txt

Listed in [configuration/constants](https://banes-lab.com/api/source/quality/configuration/constants.md), after [configuration/constants/tool.constants.ts](https://banes-lab.com/source/quality/configuration/constants/tool.constants.ts.md) and before [configuration/constants/validation.constants.ts](https://banes-lab.com/source/quality/configuration/constants/validation.constants.ts.md).

## Definitions

- `HTMLHINT_DESCRIPTIONS` (lexical_declaration, line 1, exported)
- `HTMLHINT_CANONICAL` (lexical_declaration, line 24, exported)

## Contained in

- [configuration/constants](https://banes-lab.com/anatomy/quality/folder-quality-configuration-constants.md)

## Source

```typescript
export const HTMLHINT_DESCRIPTIONS: ReadonlyMap<string, string> = new Map([
    ["alt-require", "img elements must have an alt attribute"],
    ["attr-lowercase", "Attribute names must be lowercase"],
    ["attr-no-duplication", "No duplicate attributes on an element"],
    ["attr-unsafe-chars", "No unsafe characters in attribute values"],
    ["attr-value-double-quotes", "Attribute values must be double-quoted"],
    ["attr-value-not-empty", "Attributes must have a value"],
    ["doctype-first", "Doctype must be the first line"],
    ["doctype-html5", "Doctype must be html5"],
    ["head-script-disabled", "script tags are disabled in the head"],
    ["id-class-ad-disabled", "No ad-related id/class names"],
    ["id-unique", "id attributes must be unique"],
    ["inline-script-disabled", "Inline script is disabled (CSP)"],
    ["inline-style-disabled", "Inline style attributes are disabled (CSP)"],
    ["space-tab-mixed-disabled", "No mixed spaces and tabs"],
    ["spec-char-escape", "Special characters must be escaped"],
    ["src-not-empty", "src attributes must not be empty"],
    ["style-disabled", "style tags are disabled"],
    ["tag-pair", "Tags must be paired"],
    ["tagname-lowercase", "Tag names must be lowercase"],
    ["title-require", "The head must contain a title"],
]);

export const HTMLHINT_CANONICAL: ReadonlyMap<string, readonly string[]> = new Map([
    ["alt-require", ["accessibility"]],
    ["attr-unsafe-chars", ["security"]],
    ["head-script-disabled", ["security", "csp"]],
    ["id-unique", ["correctness"]],
    ["inline-script-disabled", ["security", "csp"]],
    ["inline-style-disabled", ["security", "css"]],
    ["spec-char-escape", ["security"]],
    ["tag-pair", ["correctness"]],
    ["title-require", ["accessibility"]],
]);
```
