# 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.