{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "https://json.schemastore.org/htmlhint.json",
  "properties": {
    "alt-require": {
      "description": "Alt of img must be present and alt of area[href] and input[type=image] must be set value.",
      "type": "boolean",
      "default": false
    },
    "attr-lowercase": {
      "description": "Attribute name must be lowercase.",
      "anyOf": [
        { "type": "boolean" },
        { "type": "array", "items": { "type": "string" } }
      ],
      "default": false
    },
    "attr-no-duplication": {
      "description": "The same attribute can't be specified twice.",
      "type": "boolean",
      "default": false
    },
    "attr-sorted": {
      "description": "Attributes should be sorted in an order.",
      "type": "boolean",
      "default": false
    },
    "attr-unsafe-chars": {
      "description": "Attribute value cannot use unsafe chars.",
      "type": "boolean",
      "default": false
    },
    "attr-value-double-quotes": {
      "description": "Attribute value must be closed by double quotes.",
      "type": "boolean",
      "default": false
    },
    "attr-value-no-duplication": {
      "description": "Class attributes should not contain duplicate values. Other attributes can be checked via configuration.",
      "anyOf": [
        { "type": "boolean" },
        { "type": "array", "items": { "type": "string" } }
      ],
      "default": false
    },
    "attr-value-not-empty": {
      "description": "Attribute must set value.",
      "type": "boolean",
      "default": false
    },
    "attr-value-single-quotes": {
      "description": "Attribute value must be closed by single quotes.",
      "type": "boolean",
      "default": false
    },
    "attr-whitespace": {
      "description": "No leading or trailing spaces inside attribute values.",
      "type": "boolean",
      "default": false
    },
    "button-type-require": {
      "description": "The type attribute of a button element must be present with a valid value: button, submit, or reset.",
      "type": "boolean",
      "default": false
    },
    "doctype-first": {
      "description": "Doctype must be first.",
      "type": "boolean",
      "default": false
    },
    "doctype-html5": {
      "description": "Doctype must be HTML5.",
      "type": "boolean",
      "default": false
    },
    "frame-title-require": {
      "description": "A frame or iframe element must have an accessible name.",
      "type": "boolean",
      "default": false
    },
    "form-method-require": {
      "description": "The method attribute of a form element must be present.",
      "type": "boolean",
      "default": false
    },
    "h1-require": {
      "description": "A H1 heading element is required in HTML documents.",
      "type": "boolean",
      "default": false
    },
    "head-script-disabled": {
      "description": "The script tag cannot be used in head.",
      "default": false,
      "enum": [false, true, "allow-non-blocking"]
    },
    "href-abs-or-rel": {
      "description": "Href must be absolute or relative.",
      "default": false,
      "enum": [false, "abs", "rel"]
    },
    "html-lang-require": {
      "description": "The lang attribute of an <html> element must be present and should be valid.",
      "type": "boolean",
      "default": false
    },
    "id-class-ad-disabled": {
      "description": "Id and class cannot use ad keyword, it will be blocked by adblock software.",
      "type": "boolean",
      "default": false
    },
    "id-class-value": {
      "description": "Id and class value must meet some rules: underline, dash, hump.",
      "default": false,
      "enum": [false, "underline", "dash", "hump"]
    },
    "id-unique": {
      "description": "ID attributes must be unique in the document.",
      "type": "boolean",
      "default": false
    },
    "inline-script-disabled": {
      "description": "Inline script cannot be used.",
      "type": "boolean",
      "default": false
    },
    "inline-style-disabled": {
      "description": "Inline style cannot be used.",
      "type": "boolean",
      "default": false
    },
    "link-rel-canonical-require": {
      "description": "A link element with rel=\"canonical\" is required within the <head> tag.",
      "type": "boolean",
      "default": false
    },
    "main-require": {
      "description": "A main element is required within the <body> tag.",
      "type": "boolean",
      "default": false
    },
    "meta-charset-require": {
      "description": "A meta charset is required within the <head> tag.",
      "type": "boolean",
      "default": false
    },
    "meta-description-require": {
      "description": "A meta description is required within the <head> tag.",
      "type": "boolean",
      "default": false
    },
    "meta-viewport-require": {
      "description": "A meta viewport is required within the <head> tag.",
      "type": "boolean",
      "default": false
    },
    "space-tab-mixed-disabled": {
      "description": "Spaces and tabs cannot be mixed in front of line.",
      "default": false,
      "enum": [false, "space", "tab"]
    },
    "spec-char-escape": {
      "description": "Special characters must be escaped.",
      "type": "boolean",
      "default": false
    },
    "src-not-empty": {
      "description": "Src of img(script,link) must set value. Empty of src will visit current page twice.",
      "type": "boolean",
      "default": false
    },
    "style-disabled": {
      "description": "Style tag cannot be used.",
      "type": "boolean",
      "default": false
    },
    "tag-no-obsolete": {
      "description": "Disallows the use of obsolete HTML tags.",
      "type": "boolean",
      "default": false
    },
    "tag-pair": {
      "description": "Tag must be paired.",
      "type": "boolean",
      "default": false
    },
    "tag-self-close": {
      "description": "The empty tag must be self-closed.",
      "type": "boolean",
      "default": false
    },
    "tagname-lowercase": {
      "description": "Tagname must be lowercase.",
      "type": "boolean",
      "default": false
    },
    "tagname-specialchars": {
      "description": "Tagname must not contain any characters beside letters, numbers, ”-”, ”:” or ”_”.",
      "type": "boolean",
      "default": false
    },
    "tags-check": {
      "description": "Check if particular tags are self-closing or must include or exclude particular tags.",
      "type": "boolean",
      "default": false
    },
    "title-require": {
      "description": "title must be present in head tag.",
      "type": "boolean",
      "default": false
    }
  },
  "title": "JSON schema for HTMLHint configuration files",
  "type": "object"
}
