From 2ef5b901364b9024ef62286be59bcd67a3ec7d89 Mon Sep 17 00:00:00 2001
From: XhmikosR <xhmikosr@gmail.com>
Date: Sun, 22 Oct 2017 15:02:24 +0300
Subject: [PATCH] Tighten htmllint's rules. (#24471)

---
 _includes/header.html          |  4 ++--
 build/.htmllintrc              | 30 +++++++++++++++++++++++++++---
 js/tests/index.html            |  2 +-
 js/tests/visual/alert.html     |  2 +-
 js/tests/visual/button.html    |  2 +-
 js/tests/visual/carousel.html  |  2 +-
 js/tests/visual/collapse.html  |  2 +-
 js/tests/visual/dropdown.html  |  2 +-
 js/tests/visual/modal.html     |  2 +-
 js/tests/visual/popover.html   |  5 ++---
 js/tests/visual/scrollspy.html |  2 +-
 js/tests/visual/tab.html       |  2 +-
 js/tests/visual/tooltip.html   |  2 +-
 13 files changed, 41 insertions(+), 18 deletions(-)

diff --git a/_includes/header.html b/_includes/header.html
index 7c7a3a6437..ee077bdbd6 100644
--- a/_includes/header.html
+++ b/_includes/header.html
@@ -4,9 +4,9 @@
 
 <title>
   {%- if page.title -%}
-    {{ page.title }} &middot; {{ site.title }}
+    {{ page.title }} · {{ site.title }}
   {%- else -%}
-    {{ site.title }} &middot; {{ site.description }}
+    {{ site.title }} · {{ site.description }}
   {%- endif -%}
 </title>
 
diff --git a/build/.htmllintrc b/build/.htmllintrc
index c04658fb9e..ba2c6b3a39 100644
--- a/build/.htmllintrc
+++ b/build/.htmllintrc
@@ -1,19 +1,43 @@
 {
   "attr-bans": ["align", "background", "bgcolor", "border", "frameborder", "longdesc", "marginwidth", "marginheight", "scrolling"],
   "attr-name-style": false,
-  "attr-no-unsafe-char": false,
+  "attr-no-dup": true,
+  "attr-no-unsafe-char": true,
+  "attr-quote-style": "double",
+  "attr-req-value": true,
+  "attr-validate": true,
+  "class-no-dup": true,
   "class-style": "dash",
   "doctype-first": true,
   "doctype-html5": true,
   "fig-req-figcaption": false,
+  "focusable-tabindex-style": true,
+  "head-req-title": true,
+  "head-valid-content-model": false,
+  "href-style": false,
+  "html-req-lang": true,
   "html-valid-content-model": false,
   "id-class-ignore-regex": "(onclick|content|[a-z]+([A-Z][a-z])+)",
+  "id-class-no-ad": true,
   "id-class-style": "dash",
+  "id-no-dup": true,
+  "img-req-alt": "allownull",
   "img-req-src": false,
-  "img-req-alt": false,
   "indent-style": "spaces",
   "indent-width": 2,
+  "input-radio-req-name": false,
+  "input-req-label": false,
+  "label-req-for": true,
+  "lang-style": "case",
+  "line-end-style": "lf",
   "spec-char-escape": false,
+  "table-req-header": false,
   "tag-bans": ["b", "i"],
-  "title-max-len": false
+  "tag-close": true,
+  "tagname-lowercase": true,
+  "tag-name-match": true,
+  "tag-self-close": false,
+  "text-ignore-regex": false,
+  "title-max-len": 70,
+  "title-no-dup": true
 }
diff --git a/js/tests/index.html b/js/tests/index.html
index ad5b6437ab..2383fce6e6 100644
--- a/js/tests/index.html
+++ b/js/tests/index.html
@@ -1,5 +1,5 @@
 <!doctype html>
-<html>
+<html lang="en">
   <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
diff --git a/js/tests/visual/alert.html b/js/tests/visual/alert.html
index bb2d9cb48d..9baee6f506 100644
--- a/js/tests/visual/alert.html
+++ b/js/tests/visual/alert.html
@@ -1,5 +1,5 @@
 <!doctype html>
-<html>
+<html lang="en">
   <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
diff --git a/js/tests/visual/button.html b/js/tests/visual/button.html
index 33de14d8bd..3de316ac8e 100644
--- a/js/tests/visual/button.html
+++ b/js/tests/visual/button.html
@@ -1,5 +1,5 @@
 <!doctype html>
-<html>
+<html lang="en">
   <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
diff --git a/js/tests/visual/carousel.html b/js/tests/visual/carousel.html
index 5bdd6160b5..f81dc951e7 100644
--- a/js/tests/visual/carousel.html
+++ b/js/tests/visual/carousel.html
@@ -1,5 +1,5 @@
 <!doctype html>
-<html>
+<html lang="en">
   <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
diff --git a/js/tests/visual/collapse.html b/js/tests/visual/collapse.html
index 0c19def73f..3005920957 100644
--- a/js/tests/visual/collapse.html
+++ b/js/tests/visual/collapse.html
@@ -1,5 +1,5 @@
 <!doctype html>
-<html>
+<html lang="en">
   <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
diff --git a/js/tests/visual/dropdown.html b/js/tests/visual/dropdown.html
index bb0fc6e41c..11b89b0f26 100644
--- a/js/tests/visual/dropdown.html
+++ b/js/tests/visual/dropdown.html
@@ -1,5 +1,5 @@
 <!doctype html>
-<html>
+<html lang="en">
   <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
diff --git a/js/tests/visual/modal.html b/js/tests/visual/modal.html
index fcc96035bd..3b4cd4d3e1 100644
--- a/js/tests/visual/modal.html
+++ b/js/tests/visual/modal.html
@@ -1,5 +1,5 @@
 <!doctype html>
-<html>
+<html lang="en">
   <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
diff --git a/js/tests/visual/popover.html b/js/tests/visual/popover.html
index d979d967a4..ec2fb49345 100644
--- a/js/tests/visual/popover.html
+++ b/js/tests/visual/popover.html
@@ -1,5 +1,5 @@
 <!doctype html>
-<html>
+<html lang="en">
   <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
@@ -22,8 +22,7 @@
         Popover on right
       </button>
 
-      <button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="bottom" data-content="Vivamus
-      sagittis lacus vel augue laoreet rutrum faucibus.">
+      <button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="bottom" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
         Popover on bottom
       </button>
 
diff --git a/js/tests/visual/scrollspy.html b/js/tests/visual/scrollspy.html
index cfa31ceeac..b57185187a 100644
--- a/js/tests/visual/scrollspy.html
+++ b/js/tests/visual/scrollspy.html
@@ -1,5 +1,5 @@
 <!doctype html>
-<html>
+<html lang="en">
   <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
diff --git a/js/tests/visual/tab.html b/js/tests/visual/tab.html
index defb577cfb..a6034722e7 100644
--- a/js/tests/visual/tab.html
+++ b/js/tests/visual/tab.html
@@ -1,5 +1,5 @@
 <!doctype html>
-<html>
+<html lang="en">
   <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
diff --git a/js/tests/visual/tooltip.html b/js/tests/visual/tooltip.html
index 2d3767830e..cd57ef4ffc 100644
--- a/js/tests/visual/tooltip.html
+++ b/js/tests/visual/tooltip.html
@@ -1,5 +1,5 @@
 <!doctype html>
-<html>
+<html lang="en">
   <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-- 
GitLab