Packages
nldoc_validation
4.0.17
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/style_bold_in_heading.ex
defmodule NLdoc.Validation.Rules.StyleBoldInHeading do
@moduledoc """
This rule validates that heading is not manually styled bold.
Underlined is covered by the NoUnderline Rule
"""
alias NLdoc.Spec.{Heading, Link, Paragraph, Text}
alias NLdoc.Validation.{Severity, State}
use NLdoc.Validation.Rule,
severity: Severity.warning(),
rule: "style-bold-in-heading",
ruleset: "https://validation.spec.nldoc.nl/",
# @TODO set `ruleset_version` to a real version
ruleset_version: "unknown",
validates: [Paragraph, Heading, Text, Link]
@impl true
def update_state(state = %State{}, %Heading{}),
do: %State{state | parent_is_heading?: true}
@impl true
def update_state(state = %State{}, %{children: _children}),
do: %State{state | parent_is_heading?: false}
@impl true
def valid?(%{styling: styling}, %State{parent_is_heading?: true}),
do: !Enum.any?(styling, fn style -> style == :bold end)
end