Sha256: e82a3d5a5af75652da292f86e7bc28db26d3a24ff42319f41b84302f93a7b0d2
Contents?: true
Size: 881 Bytes
Versions: 16
Compression:
Stored size: 881 Bytes
Contents
module InlineSvg::TransformPipeline::Transformations class AriaAttributes < Transformation def transform(doc) with_svg(doc) do |svg| # Add role svg["role"] = "img" # Build aria-labelledby string aria_elements = [] svg.search("title").each do |element| aria_elements << element["id"] = element_id_for("title", element) end svg.search("desc").each do |element| aria_elements << element["id"] = element_id_for("desc", element) end if aria_elements.any? svg["aria-labelledby"] = aria_elements.join(" ") end end end def element_id_for(base, element) if element["id"].nil? InlineSvg::IdGenerator.generate(base, element.text) else InlineSvg::IdGenerator.generate(element["id"], element.text) end end end end
Version data entries
16 entries across 16 versions & 2 rubygems