Packages
nldoc_validation
4.0.26
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_italic_in_heading.ex
defmodule NLdoc.Validation.Rules.StyleItalicInHeading do
@moduledoc """
This rule validates that heading is not manually styled italic.
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-italic-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 == :italic end)
end