# Htmlhint
> This is the full developer documentation for HTMLHint
## Pages
- [Htmlhint Documentation](htmlhint-documentation.md)
- [HTMLHint](htmlhint.md): The web's most popular static code analysis tool you need for your HTML
- [Changelog](changelog.md): The release notes for HTMLHint, see what's changed with each new version.
- [Configuration](configuration.md): How to configure HTMLHint using a configuration file, command line options, or inline comments.
- [Getting Started](getting-started.md): How to set up HTMLHint in your project by adding it as a dev dependency and configuring it.
- [Other integrations](other-integrations.md): Other integrations built and maintained by the HTMLHint organization and some by the community.
- [Task runners](task-runners.md): Task runner integrations built and maintained by HTMLHint organization and the community.
- [List of rules](list-of-rules.md): A complete list of all the rules for HTMLHint
- [alt-require](alt-require.md): Requires alt attributes on images and relevant elements to improve accessibility and SEO.
- [attr-lowercase](attr-lowercase.md): Enforces all attribute names in HTML to be lowercase for consistency and standards compliance.
- [attr-no-duplication](attr-no-duplication.md): Prevents duplicate attributes in a single HTML element to ensure valid and clean markup.
- [attr-no-unnecessary-whitespace](attr-no-unnecessary-whitespace.md): Disallows unnecessary spaces between attribute names and values in HTML elements.
- [attr-sorted](attr-sorted.md): Enforces a specific order for attributes in HTML elements to improve readability and consistency.
- [attr-unsafe-chars](attr-unsafe-chars.md): Disallows unsafe characters in attribute values to prevent rendering and security issues.
- [attr-value-double-quotes](attr-value-double-quotes.md): Requires attribute values in HTML to be enclosed in double quotes for consistency and standards compliance.
- [attr-value-no-duplication](attr-value-no-duplication.md): Prevents duplicate values within the same attribute to ensure clean and efficient markup.
- [attr-value-not-empty](attr-value-not-empty.md): Ensures all attributes have non-empty values to prevent invalid or ambiguous HTML.
- [attr-value-single-quotes](attr-value-single-quotes.md): Requires attribute values in HTML to be enclosed in single quotes for consistency.
- [attr-whitespace](attr-whitespace.md): Disallows leading or trailing spaces inside attribute values to ensure clean and valid HTML.
- [button-type-require](button-type-require.md): Requires button elements to have a valid type attribute for better browser compatibility and user experience.
- [doctype-first](doctype-first.md): Ensures the doctype declaration appears before any non-comment content in HTML documents.
- [doctype-html5](doctype-html5.md): Ensures the doctype is HTML5.
- [empty-tag-not-self-closed](empty-tag-not-self-closed.md): Ensures empty HTML tags are not self-closed, following HTML standards for void elements.
- [form-method-require](form-method-require.md): Requires form elements to have a valid method attribute for better security and user experience.
- [frame-title-require](frame-title-require.md): Requires that frame and iframe elements have an accessible name for screen readers and assistive technologies.
- [h1-require](h1-require.md): Ensures that an HTML document contains at least one``element for proper document structure and accessibility.
- [head-script-disabled](head-script-disabled.md): Disallows the use of tags within the section of HTML documents.
- [href-abs-or-rel](href-abs-or-rel.md): Enforces href attributes to be either absolute or relative URLs as specified in the configuration.
- [html-lang-require](html-lang-require.md): Requires the lang attribute on the element to ensure proper language declaration for accessibility and SEO.
- [id-class-ad-disabled](id-class-ad-disabled.md): Prevents the use of 'ad' in id or class attributes to avoid issues with ad blockers.
- [id-class-value](id-class-value.md): Enforces specific naming conventions for id and class attribute values in HTML elements.
- [id-unique](id-unique.md): Ensures all id attributes in an HTML document are unique to prevent conflicts and unexpected behavior.
- [inline-script-disabled](inline-script-disabled.md): Disallows the use of inline JavaScript in HTML elements for improved security and maintainability.
- [inline-style-disabled](inline-style-disabled.md): Disallows the use of inline style attributes to promote separation of content and presentation.
- [input-requires-label](input-requires-label.md): Requires every element to have an associated for accessibility compliance.
- [link-rel-canonical-require](link-rel-canonical-require.md): Ensures every HTML document includes a canonical link tag within the head element for better SEO and duplicate conten...
- [main-require](main-require.md): Ensures that an HTML document contains a``element within the``tag for proper document structure and a...
- [meta-charset-require](meta-charset-require.md): Ensures every HTML document includes a meta charset tag within the head element for proper character encoding.
- [meta-description-require](meta-description-require.md): Ensures every HTML document includes a non-blank meta description tag within the head element for better SEO.
- [meta-viewport-require](meta-viewport-require.md): Ensures every HTML document includes a meta viewport tag within the head element for proper responsive design.
- [script-disabled](script-disabled.md): Disallows the use of tags in HTML documents for security and maintainability.
- [space-tab-mixed-disabled](space-tab-mixed-disabled.md): Prevents mixing spaces and tabs for indentation at the beginning of lines to ensure consistent formatting.
- [spec-char-escape](spec-char-escape.md): Requires special characters in HTML to be properly escaped to prevent rendering issues.
- [src-not-empty](src-not-empty.md): Requires the src attribute of img, script, and link elements to have a non-empty value.
- [style-disabled](style-disabled.md): Disallows the use of tags in HTML to enforce separation of content and presentation.
- [tag-no-obsolete](tag-no-obsolete.md): Disallows the use of obsolete HTML tags that are no longer supported in modern browsers.
- [tag-pair](tag-pair.md): Ensures that all HTML tags are properly paired with corresponding opening and closing tags.
- [tag-self-close](tag-self-close.md): Requires proper use of self-closing tags for void elements to maintain valid HTML structure.
- [tagname-lowercase](tagname-lowercase.md): Enforces all HTML tag names to be lowercase for consistency and standards compliance.
- [tagname-specialchars](tagname-specialchars.md): Ensures HTML tag names only contain allowed characters such as letters, numbers, hyphens, colons, or underscores.
- [tags-check](tags-check.md): Checks for correct usage of self-closing tags and required or excluded tags in HTML elements.
- [title-require](title-require.md): Ensures every HTML document includes a tag within the for accessibility and SEO.
- [Command-Line Interface (CLI)](command-line-interface-cli.md): Use HTMLHint from the command line to lint your HTML files. There are several options available to customize the beha...
- [Load a single custom rule file](load-a-single-custom-rule-file.md): npx htmlhint --rulesdir ./my-custom-rule.js index.html
- [Load all custom rules from a directory](load-all-custom-rules-from-a-directory.md): npx htmlhint --rulesdir ./custom-rules/ index.html
- [Custom Rules](custom-rules.md): Learn how to create and use custom rules to extend HTMLHint's functionality for your specific needs.
- [Load a single custom rule file](load-a-single-custom-rule-file-2.md): npx htmlhint --rulesdir ./my-custom-rule.js index.html
- [Load all custom rules from a directory](load-all-custom-rules-from-a-directory-2.md): npx htmlhint --rulesdir ./custom-rules/ index.html
- [GitHub Code Scanning](github-code-scanning.md): Get HTMLHint to run on every pull request with GitHub Code Scanning.
- [Options](options.md): Options for configuring HTMLHint config files, formatters, and more.
- [Load a single custom rule file](load-a-single-custom-rule-file-3.md): npx htmlhint --rulesdir ./my-custom-rule.js index.html
- [Load all custom rules from a directory (recursively finds all .js files)](load-all-custom-rules-from-a-directory-recursively-finds-all-js-files.md): npx htmlhint --rulesdir ./custom-rules/ index.html
- [Visual Studio Code Extension](visual-studio-code-extension.md): Get realtime linting feedback of your HTML in VS Code with the HTMLHint extension.