Packages
nldoc_validation
4.0.11
4.0.42
4.0.41
4.0.40
4.0.39
4.0.38
4.0.37
4.0.36
4.0.35
4.0.34
4.0.33
4.0.32
4.0.31
4.0.30
4.0.29
4.0.28
4.0.27
4.0.26
4.0.25
4.0.24
4.0.23
4.0.22
4.0.21
4.0.20
4.0.19
4.0.18
4.0.17
4.0.16
4.0.15
4.0.14
4.0.12
4.0.11
4.0.10
4.0.9
4.0.8
4.0.7
4.0.6
4.0.5
4.0.4
4.0.3
4.0.2
4.0.1
4.0.0
3.0.0
2.3.17
2.3.16
2.3.15
2.3.14
2.3.13
2.3.12
2.3.11
2.3.10
2.3.9
2.3.8
2.3.7
2.3.6
2.3.5
2.3.4
2.3.3
2.3.2
2.3.1
2.3.0
2.2.0
2.1.0
2.0.6
2.0.5
2.0.4
2.0.3
2.0.2
2.0.1
2.0.0
1.0.2
1.0.1
1.0.0
WCAG validator for the NLdoc specification.
Current section
Files
Jump to
Current section
Files
lib/nldoc/validation/rules/page_has_heading_one.ex
defmodule NLdoc.Validation.Rules.PageHasHeadingOne do
@moduledoc """
This rule validates that a document has at least one heading level 1.
"""
alias NLdoc.Spec.{Document, Heading}
alias NLdoc.Validation.Severity
use NLdoc.Validation.Rule,
severity: Severity.error(),
rule: "page-has-heading-one",
ruleset: "https://dequeuniversity.com/rules/axe/html",
ruleset_version: "4.10",
validates: [Document]
@impl true
def valid?(%Document{children: children}, _),
do: NLdoc.Spec.find_recursive(children, &heading_one?/1) != nil
defp heading_one?(%Heading{level: 1}), do: true
defp heading_one?(_), do: false
end