Class: Uniword::Accessibility::AccessibilityViolation

Inherits:
Object
  • Object
show all
Defined in:
lib/uniword/accessibility/accessibility_violation.rb

Overview

Accessibility Violation - individual accessibility issue

Responsibility: Represent a single accessibility violation Single Responsibility: Data structure for violations only

Examples:

Creating a violation

violation = AccessibilityViolation.new(
  rule_id: :image_alt_text,
  wcag_criterion: "1.1.1 Non-text Content",
  level: "A",
  message: "Image 1 missing alternative text",
  element: image,
  severity: :error,
  suggestion: "Add descriptive alt text"
)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes) ⇒ AccessibilityViolation

Initialize a new accessibility violation

Parameters:

  • attributes (Hash)

    Violation attributes

Options Hash (attributes):

  • :rule_id (Symbol)

    Rule identifier

  • :wcag_criterion (String)

    WCAG criterion number

  • :level (String)

    WCAG level (A, AA, AAA)

  • :message (String)

    Violation message

  • :element (Object)

    Element with violation

  • :severity (Symbol)

    Severity level

  • :suggestion (String)

    Fix suggestion



34
35
36
37
38
39
40
41
42
# File 'lib/uniword/accessibility/accessibility_violation.rb', line 34

def initialize(attributes)
  @rule_id = attributes[:rule_id]
  @wcag_criterion = attributes[:wcag_criterion]
  @level = attributes[:level]
  @message = attributes[:message]
  @element = attributes[:element]
  @severity = attributes[:severity]
  @suggestion = attributes[:suggestion]
end

Instance Attribute Details

#elementObject (readonly)

Returns the value of attribute element.



21
22
23
# File 'lib/uniword/accessibility/accessibility_violation.rb', line 21

def element
  @element
end

#levelObject (readonly)

Returns the value of attribute level.



21
22
23
# File 'lib/uniword/accessibility/accessibility_violation.rb', line 21

def level
  @level
end

#messageObject (readonly)

Returns the value of attribute message.



21
22
23
# File 'lib/uniword/accessibility/accessibility_violation.rb', line 21

def message
  @message
end

#rule_idObject (readonly)

Returns the value of attribute rule_id.



21
22
23
# File 'lib/uniword/accessibility/accessibility_violation.rb', line 21

def rule_id
  @rule_id
end

#severityObject (readonly)

Returns the value of attribute severity.



21
22
23
# File 'lib/uniword/accessibility/accessibility_violation.rb', line 21

def severity
  @severity
end

#suggestionObject (readonly)

Returns the value of attribute suggestion.



21
22
23
# File 'lib/uniword/accessibility/accessibility_violation.rb', line 21

def suggestion
  @suggestion
end

#wcag_criterionObject (readonly)

Returns the value of attribute wcag_criterion.



21
22
23
# File 'lib/uniword/accessibility/accessibility_violation.rb', line 21

def wcag_criterion
  @wcag_criterion
end

Instance Method Details

#error?Boolean

Check if violation is an error

Returns:

  • (Boolean)

    True if severity is error



47
48
49
# File 'lib/uniword/accessibility/accessibility_violation.rb', line 47

def error?
  @severity == :error
end

#info?Boolean

Check if violation is info

Returns:

  • (Boolean)

    True if severity is info



61
62
63
# File 'lib/uniword/accessibility/accessibility_violation.rb', line 61

def info?
  @severity == :info
end

#to_hHash

Convert to hash representation

Returns:

  • (Hash)

    Violation as hash



68
69
70
71
72
73
74
75
76
77
# File 'lib/uniword/accessibility/accessibility_violation.rb', line 68

def to_h
  {
    rule_id: @rule_id,
    wcag_criterion: @wcag_criterion,
    level: @level,
    severity: @severity,
    message: @message,
    suggestion: @suggestion,
  }
end

#warning?Boolean

Check if violation is a warning

Returns:

  • (Boolean)

    True if severity is warning



54
55
56
# File 'lib/uniword/accessibility/accessibility_violation.rb', line 54

def warning?
  @severity == :warning
end