Packages
nldoc_validation
2.3.6
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/p_as_heading.ex
defmodule NLdoc.Validation.Rules.PAsHeading do
@moduledoc """
Ensures paragraph elements are not used to style headings.
"""
alias NLdoc.Spec.Paragraph
alias NLdoc.Validation.Severity
use NLdoc.Validation.Rule,
severity: Severity.warning(),
rule: "p-as-heading",
ruleset: "https://dequeuniversity.com/rules/axe/html",
ruleset_version: "4.10",
validates: [Paragraph]
@impl true
def valid?(paragraph = %Paragraph{children: children}, _) do
!Enum.all?(children, &bold?/1) || !NLdoc.Spec.Content.discernible_text?(paragraph)
end
@spec bold?(term()) :: boolean()
defp bold?(%{styling: styling, text: text}),
do: Enum.member?(styling, :bold) || !NLdoc.Spec.Content.discernible_text?(text)
defp bold?(_),
do: false
end