svg_conform 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/rake.yml +15 -0
  3. data/.github/workflows/release.yml +23 -0
  4. data/.github/workflows/svgcheck-compatibility.yml +135 -0
  5. data/.gitignore +12 -0
  6. data/.rspec +3 -0
  7. data/.rubocop.yml +13 -0
  8. data/.rubocop_todo.yml +183 -0
  9. data/CODE_OF_CONDUCT.md +132 -0
  10. data/Gemfile +14 -0
  11. data/README.adoc +1384 -0
  12. data/Rakefile +15 -0
  13. data/config/profiles/base.yml +34 -0
  14. data/config/profiles/lucid_fix.yml +37 -0
  15. data/config/profiles/metanorma.yml +212 -0
  16. data/config/profiles/no_external_css.yml +20 -0
  17. data/config/profiles/svg_1_2_rfc.yml +284 -0
  18. data/config/profiles/svg_1_2_rfc_with_rdf.yml +145 -0
  19. data/config/svgcheck_mapping.yml +180 -0
  20. data/docs/profiles.adoc +547 -0
  21. data/docs/rdf_metadata_support.adoc +212 -0
  22. data/docs/remediation.adoc +732 -0
  23. data/docs/requirements.adoc +709 -0
  24. data/examples/demo.rb +116 -0
  25. data/examples/requirements_demo.rb +240 -0
  26. data/exe/svg_conform +7 -0
  27. data/lib/svg_conform/batch_report.rb +70 -0
  28. data/lib/svg_conform/cli.rb +107 -0
  29. data/lib/svg_conform/commands/check.rb +390 -0
  30. data/lib/svg_conform/commands/profiles.rb +118 -0
  31. data/lib/svg_conform/commands/svgcheck.rb +90 -0
  32. data/lib/svg_conform/commands/svgcheck_compare.rb +92 -0
  33. data/lib/svg_conform/commands/svgcheck_compatibility.rb +43 -0
  34. data/lib/svg_conform/commands/svgcheck_generate.rb +262 -0
  35. data/lib/svg_conform/compatibility/analysis_context.rb +68 -0
  36. data/lib/svg_conform/compatibility/comparison_result.rb +147 -0
  37. data/lib/svg_conform/compatibility/compatibility_analyzer.rb +85 -0
  38. data/lib/svg_conform/compatibility/file_processor.rb +109 -0
  39. data/lib/svg_conform/compatibility/pattern_discovery.rb +319 -0
  40. data/lib/svg_conform/compatibility/report_formatter.rb +359 -0
  41. data/lib/svg_conform/compatibility/svg_analysis_engine.rb +316 -0
  42. data/lib/svg_conform/compatibility/validity_analysis.rb +252 -0
  43. data/lib/svg_conform/compatibility/xml_analysis_engine.rb +198 -0
  44. data/lib/svg_conform/compatibility_analyzer.rb +285 -0
  45. data/lib/svg_conform/conformance_report.rb +267 -0
  46. data/lib/svg_conform/constants.rb +199 -0
  47. data/lib/svg_conform/css_color.rb +262 -0
  48. data/lib/svg_conform/document.rb +203 -0
  49. data/lib/svg_conform/external_checkers/svgcheck/compatibility_engine.rb +166 -0
  50. data/lib/svg_conform/external_checkers/svgcheck/output_generator.rb +101 -0
  51. data/lib/svg_conform/external_checkers/svgcheck/parser.rb +200 -0
  52. data/lib/svg_conform/external_checkers/svgcheck/report_comparator.rb +175 -0
  53. data/lib/svg_conform/external_checkers/svgcheck/report_generator.rb +82 -0
  54. data/lib/svg_conform/external_checkers/svgcheck/validation_pipeline.rb +249 -0
  55. data/lib/svg_conform/external_checkers/svgcheck.rb +56 -0
  56. data/lib/svg_conform/external_checkers.rb +34 -0
  57. data/lib/svg_conform/fixer.rb +56 -0
  58. data/lib/svg_conform/profile.rb +164 -0
  59. data/lib/svg_conform/profiles.rb +60 -0
  60. data/lib/svg_conform/remediation_engine.rb +92 -0
  61. data/lib/svg_conform/remediation_result.rb +36 -0
  62. data/lib/svg_conform/remediation_runner.rb +225 -0
  63. data/lib/svg_conform/remediations/base_remediation.rb +165 -0
  64. data/lib/svg_conform/remediations/color_remediation.rb +226 -0
  65. data/lib/svg_conform/remediations/font_embedding_remediation.rb +145 -0
  66. data/lib/svg_conform/remediations/font_remediation.rb +122 -0
  67. data/lib/svg_conform/remediations/image_embedding_remediation.rb +154 -0
  68. data/lib/svg_conform/remediations/invalid_id_references_remediation.rb +129 -0
  69. data/lib/svg_conform/remediations/namespace_attribute_remediation.rb +244 -0
  70. data/lib/svg_conform/remediations/namespace_remediation.rb +151 -0
  71. data/lib/svg_conform/remediations/no_external_css_remediation.rb +192 -0
  72. data/lib/svg_conform/remediations/style_promotion_remediation.rb +93 -0
  73. data/lib/svg_conform/remediations/viewbox_remediation.rb +127 -0
  74. data/lib/svg_conform/remediations.rb +40 -0
  75. data/lib/svg_conform/report_comparator.rb +772 -0
  76. data/lib/svg_conform/requirements/allowed_elements_requirement.rb +367 -0
  77. data/lib/svg_conform/requirements/base_requirement.rb +98 -0
  78. data/lib/svg_conform/requirements/color_restrictions_requirement.rb +126 -0
  79. data/lib/svg_conform/requirements/element_requirement_config.rb +75 -0
  80. data/lib/svg_conform/requirements/font_family_requirement.rb +133 -0
  81. data/lib/svg_conform/requirements/forbidden_content_requirement.rb +60 -0
  82. data/lib/svg_conform/requirements/id_reference_requirement.rb +133 -0
  83. data/lib/svg_conform/requirements/invalid_id_references_requirement.rb +132 -0
  84. data/lib/svg_conform/requirements/link_validation_requirement.rb +55 -0
  85. data/lib/svg_conform/requirements/namespace_attributes_requirement.rb +211 -0
  86. data/lib/svg_conform/requirements/namespace_requirement.rb +294 -0
  87. data/lib/svg_conform/requirements/no_external_css_requirement.rb +132 -0
  88. data/lib/svg_conform/requirements/no_external_fonts_requirement.rb +121 -0
  89. data/lib/svg_conform/requirements/no_external_images_requirement.rb +91 -0
  90. data/lib/svg_conform/requirements/style_promotion_requirement.rb +72 -0
  91. data/lib/svg_conform/requirements/style_requirement.rb +226 -0
  92. data/lib/svg_conform/requirements/viewbox_required_requirement.rb +96 -0
  93. data/lib/svg_conform/requirements.rb +49 -0
  94. data/lib/svg_conform/semantic_comparator.rb +829 -0
  95. data/lib/svg_conform/validation_context.rb +408 -0
  96. data/lib/svg_conform/validation_result.rb +146 -0
  97. data/lib/svg_conform/validator.rb +91 -0
  98. data/lib/svg_conform/version.rb +5 -0
  99. data/lib/svg_conform.rb +68 -0
  100. data/lib/tasks/fixtures.rake +321 -0
  101. data/lib/tasks/svgcheck.rake +111 -0
  102. data/reference-docs/SVG-1.2-RFC.rnc.txt +1676 -0
  103. data/reference-docs/Scalable Vector Graphics (SVG) 1.1 (Second Edition).html +40764 -0
  104. data/reference-docs/Scalable Vector Graphics (SVG) Tiny 1.2 Specification.html +44591 -0
  105. data/reference-docs/rfc7996.txt +2971 -0
  106. data/sig/svg_conform.rbs +4 -0
  107. data/spec/fixtures/allowed_elements/inputs/basic_violations.svg +21 -0
  108. data/spec/fixtures/allowed_elements/repair/basic_violations.svg +18 -0
  109. data/spec/fixtures/color_restrictions/inputs/basic_violations.svg +23 -0
  110. data/spec/fixtures/color_restrictions/repair/basic_violations.svg +23 -0
  111. data/spec/fixtures/comprehensive/inputs/multiple_violations.svg +21 -0
  112. data/spec/fixtures/comprehensive/repair/multiple_violations.svg +16 -0
  113. data/spec/fixtures/font_family/inputs/basic_violations.svg +17 -0
  114. data/spec/fixtures/font_family/repair/basic_violations.svg +17 -0
  115. data/spec/fixtures/forbidden_content/inputs/basic_violations.svg +27 -0
  116. data/spec/fixtures/forbidden_content/repair/basic_violations.svg +19 -0
  117. data/spec/fixtures/id_reference/inputs/basic_violations.svg +17 -0
  118. data/spec/fixtures/id_reference/repair/basic_violations.svg +15 -0
  119. data/spec/fixtures/link_validation/inputs/basic_violations.svg +20 -0
  120. data/spec/fixtures/link_validation/repair/basic_violations.svg +16 -0
  121. data/spec/fixtures/lucid/inputs/simple.svg +67 -0
  122. data/spec/fixtures/lucid/repair/simple.svg +63 -0
  123. data/spec/fixtures/namespace/inputs/basic_violations.svg +20 -0
  124. data/spec/fixtures/namespace/repair/basic_violations.svg +17 -0
  125. data/spec/fixtures/namespace_attributes/inputs/basic_violations.svg +16 -0
  126. data/spec/fixtures/namespace_attributes/repair/basic_violations.svg +15 -0
  127. data/spec/fixtures/no_external_css/inputs/basic_violations.svg +20 -0
  128. data/spec/fixtures/no_external_css/repair/basic_violations.svg +18 -0
  129. data/spec/fixtures/style/inputs/basic_violations.svg +22 -0
  130. data/spec/fixtures/style/repair/basic_violations.svg +22 -0
  131. data/spec/fixtures/style_promotion/inputs/basic_test.svg +15 -0
  132. data/spec/fixtures/style_promotion/repair/basic_test.svg +15 -0
  133. data/spec/fixtures/svg_1_2_rfc/inputs/allowed_elements_violations.svg +18 -0
  134. data/spec/fixtures/svg_1_2_rfc/inputs/color_restrictions_violations.svg +23 -0
  135. data/spec/fixtures/svgcheck/check/DrawBerry-sample-2.svg.code +1 -0
  136. data/spec/fixtures/svgcheck/check/DrawBerry-sample-2.svg.err +0 -0
  137. data/spec/fixtures/svgcheck/check/DrawBerry-sample-2.svg.out +23 -0
  138. data/spec/fixtures/svgcheck/check/IETF-test.svg.code +1 -0
  139. data/spec/fixtures/svgcheck/check/IETF-test.svg.err +0 -0
  140. data/spec/fixtures/svgcheck/check/IETF-test.svg.out +20 -0
  141. data/spec/fixtures/svgcheck/check/circle.svg.code +1 -0
  142. data/spec/fixtures/svgcheck/check/circle.svg.err +0 -0
  143. data/spec/fixtures/svgcheck/check/circle.svg.out +2 -0
  144. data/spec/fixtures/svgcheck/check/colors.svg.code +1 -0
  145. data/spec/fixtures/svgcheck/check/colors.svg.err +0 -0
  146. data/spec/fixtures/svgcheck/check/colors.svg.out +13 -0
  147. data/spec/fixtures/svgcheck/check/dia-sample-svg.svg.code +1 -0
  148. data/spec/fixtures/svgcheck/check/dia-sample-svg.svg.err +0 -0
  149. data/spec/fixtures/svgcheck/check/dia-sample-svg.svg.out +76 -0
  150. data/spec/fixtures/svgcheck/check/example-dot.svg.code +1 -0
  151. data/spec/fixtures/svgcheck/check/example-dot.svg.err +0 -0
  152. data/spec/fixtures/svgcheck/check/example-dot.svg.out +11 -0
  153. data/spec/fixtures/svgcheck/check/full-tiny.svg.code +1 -0
  154. data/spec/fixtures/svgcheck/check/full-tiny.svg.err +0 -0
  155. data/spec/fixtures/svgcheck/check/full-tiny.svg.out +5835 -0
  156. data/spec/fixtures/svgcheck/check/good.svg.code +1 -0
  157. data/spec/fixtures/svgcheck/check/good.svg.err +0 -0
  158. data/spec/fixtures/svgcheck/check/good.svg.out +1 -0
  159. data/spec/fixtures/svgcheck/check/httpbis-proxy20-fig6.svg.code +1 -0
  160. data/spec/fixtures/svgcheck/check/httpbis-proxy20-fig6.svg.err +0 -0
  161. data/spec/fixtures/svgcheck/check/httpbis-proxy20-fig6.svg.out +5 -0
  162. data/spec/fixtures/svgcheck/check/malformed.svg.code +1 -0
  163. data/spec/fixtures/svgcheck/check/malformed.svg.err +0 -0
  164. data/spec/fixtures/svgcheck/check/malformed.svg.out +8 -0
  165. data/spec/fixtures/svgcheck/check/rfc-svg.svg.code +1 -0
  166. data/spec/fixtures/svgcheck/check/rfc-svg.svg.err +0 -0
  167. data/spec/fixtures/svgcheck/check/rfc-svg.svg.out +1 -0
  168. data/spec/fixtures/svgcheck/check/rfc.xml.code +1 -0
  169. data/spec/fixtures/svgcheck/check/rfc.xml.err +0 -0
  170. data/spec/fixtures/svgcheck/check/rfc.xml.out +2 -0
  171. data/spec/fixtures/svgcheck/check/rgb.svg.code +1 -0
  172. data/spec/fixtures/svgcheck/check/rgb.svg.err +0 -0
  173. data/spec/fixtures/svgcheck/check/rgb.svg.out +9 -0
  174. data/spec/fixtures/svgcheck/check/svg-wordle.svg.code +1 -0
  175. data/spec/fixtures/svgcheck/check/svg-wordle.svg.err +0 -0
  176. data/spec/fixtures/svgcheck/check/svg-wordle.svg.out +508 -0
  177. data/spec/fixtures/svgcheck/check/threshold.svg.code +1 -0
  178. data/spec/fixtures/svgcheck/check/threshold.svg.err +0 -0
  179. data/spec/fixtures/svgcheck/check/threshold.svg.out +20 -0
  180. data/spec/fixtures/svgcheck/check/utf8.svg.code +1 -0
  181. data/spec/fixtures/svgcheck/check/utf8.svg.err +0 -0
  182. data/spec/fixtures/svgcheck/check/utf8.svg.out +162 -0
  183. data/spec/fixtures/svgcheck/check/viewBox-both.svg.code +1 -0
  184. data/spec/fixtures/svgcheck/check/viewBox-both.svg.err +0 -0
  185. data/spec/fixtures/svgcheck/check/viewBox-both.svg.out +4 -0
  186. data/spec/fixtures/svgcheck/check/viewBox-height.svg.code +1 -0
  187. data/spec/fixtures/svgcheck/check/viewBox-height.svg.err +0 -0
  188. data/spec/fixtures/svgcheck/check/viewBox-height.svg.out +3 -0
  189. data/spec/fixtures/svgcheck/check/viewBox-none.svg.code +1 -0
  190. data/spec/fixtures/svgcheck/check/viewBox-none.svg.err +0 -0
  191. data/spec/fixtures/svgcheck/check/viewBox-none.svg.out +3 -0
  192. data/spec/fixtures/svgcheck/check/viewBox-width.svg.code +1 -0
  193. data/spec/fixtures/svgcheck/check/viewBox-width.svg.err +0 -0
  194. data/spec/fixtures/svgcheck/check/viewBox-width.svg.out +3 -0
  195. data/spec/fixtures/svgcheck/inputs/DrawBerry-sample-2.svg +28 -0
  196. data/spec/fixtures/svgcheck/inputs/IETF-test.svg +28 -0
  197. data/spec/fixtures/svgcheck/inputs/circle.svg +3 -0
  198. data/spec/fixtures/svgcheck/inputs/colors.svg +18 -0
  199. data/spec/fixtures/svgcheck/inputs/dia-sample-svg.svg +47 -0
  200. data/spec/fixtures/svgcheck/inputs/example-dot.svg +75 -0
  201. data/spec/fixtures/svgcheck/inputs/full-tiny.svg +16194 -0
  202. data/spec/fixtures/svgcheck/inputs/good.svg +19 -0
  203. data/spec/fixtures/svgcheck/inputs/httpbis-proxy20-fig6.svg +2 -0
  204. data/spec/fixtures/svgcheck/inputs/malformed.svg +11 -0
  205. data/spec/fixtures/svgcheck/inputs/rfc-svg.svg +1028 -0
  206. data/spec/fixtures/svgcheck/inputs/rfc.xml +37 -0
  207. data/spec/fixtures/svgcheck/inputs/rgb.svg +9 -0
  208. data/spec/fixtures/svgcheck/inputs/svg-wordle.svg +330 -0
  209. data/spec/fixtures/svgcheck/inputs/threshold.svg +26 -0
  210. data/spec/fixtures/svgcheck/inputs/utf8.svg +448 -0
  211. data/spec/fixtures/svgcheck/inputs/viewBox-both.svg +3 -0
  212. data/spec/fixtures/svgcheck/inputs/viewBox-height.svg +3 -0
  213. data/spec/fixtures/svgcheck/inputs/viewBox-none.svg +3 -0
  214. data/spec/fixtures/svgcheck/inputs/viewBox-width.svg +3 -0
  215. data/spec/fixtures/svgcheck/repair/DrawBerry-sample-2.svg.code +1 -0
  216. data/spec/fixtures/svgcheck/repair/DrawBerry-sample-2.svg.err +0 -0
  217. data/spec/fixtures/svgcheck/repair/DrawBerry-sample-2.svg.file +0 -0
  218. data/spec/fixtures/svgcheck/repair/DrawBerry-sample-2.svg.out +23 -0
  219. data/spec/fixtures/svgcheck/repair/IETF-test.svg.code +1 -0
  220. data/spec/fixtures/svgcheck/repair/IETF-test.svg.err +0 -0
  221. data/spec/fixtures/svgcheck/repair/IETF-test.svg.file +29 -0
  222. data/spec/fixtures/svgcheck/repair/IETF-test.svg.out +20 -0
  223. data/spec/fixtures/svgcheck/repair/circle.svg.code +1 -0
  224. data/spec/fixtures/svgcheck/repair/circle.svg.err +0 -0
  225. data/spec/fixtures/svgcheck/repair/circle.svg.file +4 -0
  226. data/spec/fixtures/svgcheck/repair/circle.svg.out +2 -0
  227. data/spec/fixtures/svgcheck/repair/colors.svg.code +1 -0
  228. data/spec/fixtures/svgcheck/repair/colors.svg.err +0 -0
  229. data/spec/fixtures/svgcheck/repair/colors.svg.file +19 -0
  230. data/spec/fixtures/svgcheck/repair/colors.svg.out +13 -0
  231. data/spec/fixtures/svgcheck/repair/dia-sample-svg.svg.code +1 -0
  232. data/spec/fixtures/svgcheck/repair/dia-sample-svg.svg.err +0 -0
  233. data/spec/fixtures/svgcheck/repair/dia-sample-svg.svg.file +47 -0
  234. data/spec/fixtures/svgcheck/repair/dia-sample-svg.svg.out +76 -0
  235. data/spec/fixtures/svgcheck/repair/example-dot.svg.code +1 -0
  236. data/spec/fixtures/svgcheck/repair/example-dot.svg.err +0 -0
  237. data/spec/fixtures/svgcheck/repair/example-dot.svg.file +69 -0
  238. data/spec/fixtures/svgcheck/repair/example-dot.svg.out +11 -0
  239. data/spec/fixtures/svgcheck/repair/good.svg.code +1 -0
  240. data/spec/fixtures/svgcheck/repair/good.svg.err +0 -0
  241. data/spec/fixtures/svgcheck/repair/good.svg.file +0 -0
  242. data/spec/fixtures/svgcheck/repair/good.svg.out +1 -0
  243. data/spec/fixtures/svgcheck/repair/httpbis-proxy20-fig6.svg.code +1 -0
  244. data/spec/fixtures/svgcheck/repair/httpbis-proxy20-fig6.svg.err +0 -0
  245. data/spec/fixtures/svgcheck/repair/httpbis-proxy20-fig6.svg.file +73 -0
  246. data/spec/fixtures/svgcheck/repair/httpbis-proxy20-fig6.svg.out +5 -0
  247. data/spec/fixtures/svgcheck/repair/malformed.svg.code +1 -0
  248. data/spec/fixtures/svgcheck/repair/malformed.svg.err +0 -0
  249. data/spec/fixtures/svgcheck/repair/malformed.svg.file +9 -0
  250. data/spec/fixtures/svgcheck/repair/malformed.svg.out +8 -0
  251. data/spec/fixtures/svgcheck/repair/rfc-svg.svg.code +1 -0
  252. data/spec/fixtures/svgcheck/repair/rfc-svg.svg.err +0 -0
  253. data/spec/fixtures/svgcheck/repair/rfc-svg.svg.file +0 -0
  254. data/spec/fixtures/svgcheck/repair/rfc-svg.svg.out +1 -0
  255. data/spec/fixtures/svgcheck/repair/rfc.xml.code +1 -0
  256. data/spec/fixtures/svgcheck/repair/rfc.xml.err +0 -0
  257. data/spec/fixtures/svgcheck/repair/rfc.xml.file +37 -0
  258. data/spec/fixtures/svgcheck/repair/rfc.xml.out +2 -0
  259. data/spec/fixtures/svgcheck/repair/rgb.svg.code +1 -0
  260. data/spec/fixtures/svgcheck/repair/rgb.svg.err +0 -0
  261. data/spec/fixtures/svgcheck/repair/rgb.svg.file +10 -0
  262. data/spec/fixtures/svgcheck/repair/rgb.svg.out +9 -0
  263. data/spec/fixtures/svgcheck/repair/svg-wordle.svg.code +1 -0
  264. data/spec/fixtures/svgcheck/repair/svg-wordle.svg.err +0 -0
  265. data/spec/fixtures/svgcheck/repair/svg-wordle.svg.file +112 -0
  266. data/spec/fixtures/svgcheck/repair/svg-wordle.svg.out +508 -0
  267. data/spec/fixtures/svgcheck/repair/threshold.svg.code +1 -0
  268. data/spec/fixtures/svgcheck/repair/threshold.svg.err +0 -0
  269. data/spec/fixtures/svgcheck/repair/threshold.svg.file +27 -0
  270. data/spec/fixtures/svgcheck/repair/threshold.svg.out +20 -0
  271. data/spec/fixtures/svgcheck/repair/utf8.svg.code +1 -0
  272. data/spec/fixtures/svgcheck/repair/utf8.svg.err +0 -0
  273. data/spec/fixtures/svgcheck/repair/utf8.svg.file +381 -0
  274. data/spec/fixtures/svgcheck/repair/utf8.svg.out +162 -0
  275. data/spec/fixtures/svgcheck/repair/viewBox-both.svg.code +1 -0
  276. data/spec/fixtures/svgcheck/repair/viewBox-both.svg.err +0 -0
  277. data/spec/fixtures/svgcheck/repair/viewBox-both.svg.file +4 -0
  278. data/spec/fixtures/svgcheck/repair/viewBox-both.svg.out +4 -0
  279. data/spec/fixtures/svgcheck/repair/viewBox-height.svg.code +1 -0
  280. data/spec/fixtures/svgcheck/repair/viewBox-height.svg.err +0 -0
  281. data/spec/fixtures/svgcheck/repair/viewBox-height.svg.file +4 -0
  282. data/spec/fixtures/svgcheck/repair/viewBox-height.svg.out +3 -0
  283. data/spec/fixtures/svgcheck/repair/viewBox-none.svg.code +1 -0
  284. data/spec/fixtures/svgcheck/repair/viewBox-none.svg.err +0 -0
  285. data/spec/fixtures/svgcheck/repair/viewBox-none.svg.file +4 -0
  286. data/spec/fixtures/svgcheck/repair/viewBox-none.svg.out +3 -0
  287. data/spec/fixtures/svgcheck/repair/viewBox-width.svg.code +1 -0
  288. data/spec/fixtures/svgcheck/repair/viewBox-width.svg.err +0 -0
  289. data/spec/fixtures/svgcheck/repair/viewBox-width.svg.file +4 -0
  290. data/spec/fixtures/svgcheck/repair/viewBox-width.svg.out +3 -0
  291. data/spec/fixtures/viewbox_required/inputs/missing_viewbox.svg +10 -0
  292. data/spec/fixtures/viewbox_required/repair/missing_viewbox.svg +10 -0
  293. data/spec/spec_helper.rb +16 -0
  294. data/spec/svg_conform/batch_report_spec.rb +99 -0
  295. data/spec/svg_conform/commands/check_command_spec.rb +90 -0
  296. data/spec/svg_conform/commands/profiles_command_spec.rb +20 -0
  297. data/spec/svg_conform/commands/svgcheck_compare_command_spec.rb +13 -0
  298. data/spec/svg_conform/commands/svgcheck_compatibility_command_spec.rb +13 -0
  299. data/spec/svg_conform/commands/svgcheck_generate_command_spec.rb +14 -0
  300. data/spec/svg_conform/profiles/base_profile_spec.rb +42 -0
  301. data/spec/svg_conform/profiles/lucid_fix_profile_spec.rb +46 -0
  302. data/spec/svg_conform/profiles/lucid_profile_spec.rb +84 -0
  303. data/spec/svg_conform/profiles/metanorma_profile_spec.rb +62 -0
  304. data/spec/svg_conform/profiles/no_external_css_profile_spec.rb +66 -0
  305. data/spec/svg_conform/profiles/svg_1_2_rfc_profile_spec.rb +200 -0
  306. data/spec/svg_conform/profiles/svg_1_2_rfc_with_rdf_profile_spec.rb +81 -0
  307. data/spec/svg_conform/remediations/color_remediation_spec.rb +95 -0
  308. data/spec/svg_conform/remediations/font_embedding_remediation_spec.rb +20 -0
  309. data/spec/svg_conform/remediations/font_remediation_spec.rb +95 -0
  310. data/spec/svg_conform/remediations/image_embedding_remediation_spec.rb +20 -0
  311. data/spec/svg_conform/remediations/invalid_id_references_remediation_spec.rb +97 -0
  312. data/spec/svg_conform/remediations/namespace_attribute_remediation_spec.rb +97 -0
  313. data/spec/svg_conform/remediations/namespace_remediation_spec.rb +95 -0
  314. data/spec/svg_conform/remediations/no_external_css_remediation_spec.rb +97 -0
  315. data/spec/svg_conform/remediations/style_promotion_remediation_spec.rb +97 -0
  316. data/spec/svg_conform/remediations/viewbox_remediation_spec.rb +95 -0
  317. data/spec/svg_conform/requirements/allowed_elements_requirement_spec.rb +118 -0
  318. data/spec/svg_conform/requirements/color_restrictions_requirement_spec.rb +168 -0
  319. data/spec/svg_conform/requirements/font_family_requirement_spec.rb +188 -0
  320. data/spec/svg_conform/requirements/forbidden_content_requirement_spec.rb +195 -0
  321. data/spec/svg_conform/requirements/id_reference_requirement_spec.rb +78 -0
  322. data/spec/svg_conform/requirements/invalid_id_references_requirement_spec.rb +78 -0
  323. data/spec/svg_conform/requirements/link_validation_requirement_spec.rb +78 -0
  324. data/spec/svg_conform/requirements/namespace_attributes_requirement_spec.rb +86 -0
  325. data/spec/svg_conform/requirements/namespace_requirement_spec.rb +184 -0
  326. data/spec/svg_conform/requirements/no_external_css_requirement_spec.rb +78 -0
  327. data/spec/svg_conform/requirements/no_external_fonts_requirement_spec.rb +20 -0
  328. data/spec/svg_conform/requirements/no_external_images_requirement_spec.rb +20 -0
  329. data/spec/svg_conform/requirements/style_promotion_requirement_spec.rb +78 -0
  330. data/spec/svg_conform/requirements/style_requirement_spec.rb +76 -0
  331. data/spec/svg_conform/requirements/viewbox_required_requirement_spec.rb +165 -0
  332. data/spec/svg_conform_spec.rb +32 -0
  333. data/spec/svgcheck_compatibility_spec.rb +355 -0
  334. data/svg_conform.gemspec +35 -0
  335. metadata +436 -0
@@ -0,0 +1,508 @@
1
+ Tests/svg-wordle.svg:15: The element 'metadata' is not allowed as a child of 'svg'
2
+ Tests/svg-wordle.svg:19: The element 'clipPath' is not allowed as a child of 'defs'
3
+ Tests/svg-wordle.svg:27: The element 'g' does not allow the attribute 'clip-path', attribute to be removed.
4
+ Tests/svg-wordle.svg:30: Style property 'fill' promoted to attribute
5
+ Tests/svg-wordle.svg:30: Style property 'fill-opacity' promoted to attribute
6
+ Tests/svg-wordle.svg:30: Style property 'fill-rule' promoted to attribute
7
+ Tests/svg-wordle.svg:30: Style property 'stroke' promoted to attribute
8
+ Tests/svg-wordle.svg:33: Style property 'fill' promoted to attribute
9
+ Tests/svg-wordle.svg:33: Style property 'fill-opacity' promoted to attribute
10
+ Tests/svg-wordle.svg:33: Style property 'fill-rule' promoted to attribute
11
+ Tests/svg-wordle.svg:33: Style property 'stroke' promoted to attribute
12
+ Tests/svg-wordle.svg:33: The attribute 'fill' does not allow the value '#dbdbdb', replaced with 'black'
13
+ Tests/svg-wordle.svg:36: Style property 'fill' promoted to attribute
14
+ Tests/svg-wordle.svg:36: Style property 'fill-opacity' promoted to attribute
15
+ Tests/svg-wordle.svg:36: Style property 'fill-rule' promoted to attribute
16
+ Tests/svg-wordle.svg:36: Style property 'stroke' promoted to attribute
17
+ Tests/svg-wordle.svg:36: The attribute 'fill' does not allow the value '#700a00', replaced with 'black'
18
+ Tests/svg-wordle.svg:39: Style property 'fill' promoted to attribute
19
+ Tests/svg-wordle.svg:39: Style property 'fill-opacity' promoted to attribute
20
+ Tests/svg-wordle.svg:39: Style property 'fill-rule' promoted to attribute
21
+ Tests/svg-wordle.svg:39: Style property 'stroke' promoted to attribute
22
+ Tests/svg-wordle.svg:39: The attribute 'fill' does not allow the value '#370200', replaced with 'black'
23
+ Tests/svg-wordle.svg:42: Style property 'fill' promoted to attribute
24
+ Tests/svg-wordle.svg:42: Style property 'fill-opacity' promoted to attribute
25
+ Tests/svg-wordle.svg:42: Style property 'fill-rule' promoted to attribute
26
+ Tests/svg-wordle.svg:42: Style property 'stroke' promoted to attribute
27
+ Tests/svg-wordle.svg:42: The attribute 'fill' does not allow the value '#818181', replaced with 'black'
28
+ Tests/svg-wordle.svg:45: Style property 'fill' promoted to attribute
29
+ Tests/svg-wordle.svg:45: Style property 'fill-opacity' promoted to attribute
30
+ Tests/svg-wordle.svg:45: Style property 'fill-rule' promoted to attribute
31
+ Tests/svg-wordle.svg:45: Style property 'stroke' promoted to attribute
32
+ Tests/svg-wordle.svg:45: The attribute 'fill' does not allow the value '#4f0500', replaced with 'black'
33
+ Tests/svg-wordle.svg:48: Style property 'fill' promoted to attribute
34
+ Tests/svg-wordle.svg:48: Style property 'fill-opacity' promoted to attribute
35
+ Tests/svg-wordle.svg:48: Style property 'fill-rule' promoted to attribute
36
+ Tests/svg-wordle.svg:48: Style property 'stroke' promoted to attribute
37
+ Tests/svg-wordle.svg:48: The attribute 'fill' does not allow the value '#808080', replaced with 'black'
38
+ Tests/svg-wordle.svg:51: Style property 'fill' promoted to attribute
39
+ Tests/svg-wordle.svg:51: Style property 'fill-opacity' promoted to attribute
40
+ Tests/svg-wordle.svg:51: Style property 'fill-rule' promoted to attribute
41
+ Tests/svg-wordle.svg:51: Style property 'stroke' promoted to attribute
42
+ Tests/svg-wordle.svg:51: The attribute 'fill' does not allow the value '#787878', replaced with 'black'
43
+ Tests/svg-wordle.svg:54: Style property 'fill' promoted to attribute
44
+ Tests/svg-wordle.svg:54: Style property 'fill-opacity' promoted to attribute
45
+ Tests/svg-wordle.svg:54: Style property 'fill-rule' promoted to attribute
46
+ Tests/svg-wordle.svg:54: Style property 'stroke' promoted to attribute
47
+ Tests/svg-wordle.svg:54: The attribute 'fill' does not allow the value '#dddddd', replaced with 'black'
48
+ Tests/svg-wordle.svg:57: Style property 'fill' promoted to attribute
49
+ Tests/svg-wordle.svg:57: Style property 'fill-opacity' promoted to attribute
50
+ Tests/svg-wordle.svg:57: Style property 'fill-rule' promoted to attribute
51
+ Tests/svg-wordle.svg:57: Style property 'stroke' promoted to attribute
52
+ Tests/svg-wordle.svg:57: The attribute 'fill' does not allow the value '#800d00', replaced with 'black'
53
+ Tests/svg-wordle.svg:60: Style property 'fill' promoted to attribute
54
+ Tests/svg-wordle.svg:60: Style property 'fill-opacity' promoted to attribute
55
+ Tests/svg-wordle.svg:60: Style property 'fill-rule' promoted to attribute
56
+ Tests/svg-wordle.svg:60: Style property 'stroke' promoted to attribute
57
+ Tests/svg-wordle.svg:60: The attribute 'fill' does not allow the value '#af7d7c', replaced with 'black'
58
+ Tests/svg-wordle.svg:63: Style property 'fill' promoted to attribute
59
+ Tests/svg-wordle.svg:63: Style property 'fill-opacity' promoted to attribute
60
+ Tests/svg-wordle.svg:63: Style property 'fill-rule' promoted to attribute
61
+ Tests/svg-wordle.svg:63: Style property 'stroke' promoted to attribute
62
+ Tests/svg-wordle.svg:63: The attribute 'fill' does not allow the value '#380200', replaced with 'black'
63
+ Tests/svg-wordle.svg:66: Style property 'fill' promoted to attribute
64
+ Tests/svg-wordle.svg:66: Style property 'fill-opacity' promoted to attribute
65
+ Tests/svg-wordle.svg:66: Style property 'fill-rule' promoted to attribute
66
+ Tests/svg-wordle.svg:66: Style property 'stroke' promoted to attribute
67
+ Tests/svg-wordle.svg:66: The attribute 'fill' does not allow the value '#737373', replaced with 'black'
68
+ Tests/svg-wordle.svg:69: Style property 'fill' promoted to attribute
69
+ Tests/svg-wordle.svg:69: Style property 'fill-opacity' promoted to attribute
70
+ Tests/svg-wordle.svg:69: Style property 'fill-rule' promoted to attribute
71
+ Tests/svg-wordle.svg:69: Style property 'stroke' promoted to attribute
72
+ Tests/svg-wordle.svg:69: The attribute 'fill' does not allow the value '#740b00', replaced with 'black'
73
+ Tests/svg-wordle.svg:72: Style property 'fill' promoted to attribute
74
+ Tests/svg-wordle.svg:72: Style property 'fill-opacity' promoted to attribute
75
+ Tests/svg-wordle.svg:72: Style property 'fill-rule' promoted to attribute
76
+ Tests/svg-wordle.svg:72: Style property 'stroke' promoted to attribute
77
+ Tests/svg-wordle.svg:72: The attribute 'fill' does not allow the value '#3b0300', replaced with 'black'
78
+ Tests/svg-wordle.svg:75: Style property 'fill' promoted to attribute
79
+ Tests/svg-wordle.svg:75: Style property 'fill-opacity' promoted to attribute
80
+ Tests/svg-wordle.svg:75: Style property 'fill-rule' promoted to attribute
81
+ Tests/svg-wordle.svg:75: Style property 'stroke' promoted to attribute
82
+ Tests/svg-wordle.svg:75: The attribute 'fill' does not allow the value '#7d0d00', replaced with 'black'
83
+ Tests/svg-wordle.svg:78: Style property 'fill' promoted to attribute
84
+ Tests/svg-wordle.svg:78: Style property 'fill-opacity' promoted to attribute
85
+ Tests/svg-wordle.svg:78: Style property 'fill-rule' promoted to attribute
86
+ Tests/svg-wordle.svg:78: Style property 'stroke' promoted to attribute
87
+ Tests/svg-wordle.svg:78: The attribute 'fill' does not allow the value '#7b7b7b', replaced with 'black'
88
+ Tests/svg-wordle.svg:81: Style property 'fill' promoted to attribute
89
+ Tests/svg-wordle.svg:81: Style property 'fill-opacity' promoted to attribute
90
+ Tests/svg-wordle.svg:81: Style property 'fill-rule' promoted to attribute
91
+ Tests/svg-wordle.svg:81: Style property 'stroke' promoted to attribute
92
+ Tests/svg-wordle.svg:81: The attribute 'fill' does not allow the value '#707070', replaced with 'black'
93
+ Tests/svg-wordle.svg:84: Style property 'fill' promoted to attribute
94
+ Tests/svg-wordle.svg:84: Style property 'fill-opacity' promoted to attribute
95
+ Tests/svg-wordle.svg:84: Style property 'fill-rule' promoted to attribute
96
+ Tests/svg-wordle.svg:84: Style property 'stroke' promoted to attribute
97
+ Tests/svg-wordle.svg:84: The attribute 'fill' does not allow the value '#3b0300', replaced with 'black'
98
+ Tests/svg-wordle.svg:87: Style property 'fill' promoted to attribute
99
+ Tests/svg-wordle.svg:87: Style property 'fill-opacity' promoted to attribute
100
+ Tests/svg-wordle.svg:87: Style property 'fill-rule' promoted to attribute
101
+ Tests/svg-wordle.svg:87: Style property 'stroke' promoted to attribute
102
+ Tests/svg-wordle.svg:87: The attribute 'fill' does not allow the value '#470400', replaced with 'black'
103
+ Tests/svg-wordle.svg:90: Style property 'fill' promoted to attribute
104
+ Tests/svg-wordle.svg:90: Style property 'fill-opacity' promoted to attribute
105
+ Tests/svg-wordle.svg:90: Style property 'fill-rule' promoted to attribute
106
+ Tests/svg-wordle.svg:90: Style property 'stroke' promoted to attribute
107
+ Tests/svg-wordle.svg:90: The attribute 'fill' does not allow the value '#b17f7e', replaced with 'black'
108
+ Tests/svg-wordle.svg:93: Style property 'fill' promoted to attribute
109
+ Tests/svg-wordle.svg:93: Style property 'fill-opacity' promoted to attribute
110
+ Tests/svg-wordle.svg:93: Style property 'fill-rule' promoted to attribute
111
+ Tests/svg-wordle.svg:93: Style property 'stroke' promoted to attribute
112
+ Tests/svg-wordle.svg:93: The attribute 'fill' does not allow the value '#7d7d7d', replaced with 'black'
113
+ Tests/svg-wordle.svg:96: Style property 'fill' promoted to attribute
114
+ Tests/svg-wordle.svg:96: Style property 'fill-opacity' promoted to attribute
115
+ Tests/svg-wordle.svg:96: Style property 'fill-rule' promoted to attribute
116
+ Tests/svg-wordle.svg:96: Style property 'stroke' promoted to attribute
117
+ Tests/svg-wordle.svg:96: The attribute 'fill' does not allow the value '#430300', replaced with 'black'
118
+ Tests/svg-wordle.svg:99: Style property 'fill' promoted to attribute
119
+ Tests/svg-wordle.svg:99: Style property 'fill-opacity' promoted to attribute
120
+ Tests/svg-wordle.svg:99: Style property 'fill-rule' promoted to attribute
121
+ Tests/svg-wordle.svg:99: Style property 'stroke' promoted to attribute
122
+ Tests/svg-wordle.svg:99: The attribute 'fill' does not allow the value '#3d0300', replaced with 'black'
123
+ Tests/svg-wordle.svg:102: Style property 'fill' promoted to attribute
124
+ Tests/svg-wordle.svg:102: Style property 'fill-opacity' promoted to attribute
125
+ Tests/svg-wordle.svg:102: Style property 'fill-rule' promoted to attribute
126
+ Tests/svg-wordle.svg:102: Style property 'stroke' promoted to attribute
127
+ Tests/svg-wordle.svg:102: The attribute 'fill' does not allow the value '#dbdbdb', replaced with 'black'
128
+ Tests/svg-wordle.svg:105: Style property 'fill' promoted to attribute
129
+ Tests/svg-wordle.svg:105: Style property 'fill-opacity' promoted to attribute
130
+ Tests/svg-wordle.svg:105: Style property 'fill-rule' promoted to attribute
131
+ Tests/svg-wordle.svg:105: Style property 'stroke' promoted to attribute
132
+ Tests/svg-wordle.svg:105: The attribute 'fill' does not allow the value '#460400', replaced with 'black'
133
+ Tests/svg-wordle.svg:108: Style property 'fill' promoted to attribute
134
+ Tests/svg-wordle.svg:108: Style property 'fill-opacity' promoted to attribute
135
+ Tests/svg-wordle.svg:108: Style property 'fill-rule' promoted to attribute
136
+ Tests/svg-wordle.svg:108: Style property 'stroke' promoted to attribute
137
+ Tests/svg-wordle.svg:108: The attribute 'fill' does not allow the value '#d6d6d6', replaced with 'black'
138
+ Tests/svg-wordle.svg:111: Style property 'fill' promoted to attribute
139
+ Tests/svg-wordle.svg:111: Style property 'fill-opacity' promoted to attribute
140
+ Tests/svg-wordle.svg:111: Style property 'fill-rule' promoted to attribute
141
+ Tests/svg-wordle.svg:111: Style property 'stroke' promoted to attribute
142
+ Tests/svg-wordle.svg:111: The attribute 'fill' does not allow the value '#ae7d7c', replaced with 'black'
143
+ Tests/svg-wordle.svg:114: Style property 'fill' promoted to attribute
144
+ Tests/svg-wordle.svg:114: Style property 'fill-opacity' promoted to attribute
145
+ Tests/svg-wordle.svg:114: Style property 'fill-rule' promoted to attribute
146
+ Tests/svg-wordle.svg:114: Style property 'stroke' promoted to attribute
147
+ Tests/svg-wordle.svg:114: The attribute 'fill' does not allow the value '#7a7a7a', replaced with 'black'
148
+ Tests/svg-wordle.svg:117: Style property 'fill' promoted to attribute
149
+ Tests/svg-wordle.svg:117: Style property 'fill-opacity' promoted to attribute
150
+ Tests/svg-wordle.svg:117: Style property 'fill-rule' promoted to attribute
151
+ Tests/svg-wordle.svg:117: Style property 'stroke' promoted to attribute
152
+ Tests/svg-wordle.svg:117: The attribute 'fill' does not allow the value '#7c7c7c', replaced with 'black'
153
+ Tests/svg-wordle.svg:120: Style property 'fill' promoted to attribute
154
+ Tests/svg-wordle.svg:120: Style property 'fill-opacity' promoted to attribute
155
+ Tests/svg-wordle.svg:120: Style property 'fill-rule' promoted to attribute
156
+ Tests/svg-wordle.svg:120: Style property 'stroke' promoted to attribute
157
+ Tests/svg-wordle.svg:120: The attribute 'fill' does not allow the value '#d1d0d1', replaced with 'black'
158
+ Tests/svg-wordle.svg:123: Style property 'fill' promoted to attribute
159
+ Tests/svg-wordle.svg:123: Style property 'fill-opacity' promoted to attribute
160
+ Tests/svg-wordle.svg:123: Style property 'fill-rule' promoted to attribute
161
+ Tests/svg-wordle.svg:123: Style property 'stroke' promoted to attribute
162
+ Tests/svg-wordle.svg:123: The attribute 'fill' does not allow the value '#b38180', replaced with 'black'
163
+ Tests/svg-wordle.svg:126: Style property 'fill' promoted to attribute
164
+ Tests/svg-wordle.svg:126: Style property 'fill-opacity' promoted to attribute
165
+ Tests/svg-wordle.svg:126: Style property 'fill-rule' promoted to attribute
166
+ Tests/svg-wordle.svg:126: Style property 'stroke' promoted to attribute
167
+ Tests/svg-wordle.svg:126: The attribute 'fill' does not allow the value '#790c00', replaced with 'black'
168
+ Tests/svg-wordle.svg:129: Style property 'fill' promoted to attribute
169
+ Tests/svg-wordle.svg:129: Style property 'fill-opacity' promoted to attribute
170
+ Tests/svg-wordle.svg:129: Style property 'fill-rule' promoted to attribute
171
+ Tests/svg-wordle.svg:129: Style property 'stroke' promoted to attribute
172
+ Tests/svg-wordle.svg:129: The attribute 'fill' does not allow the value '#7a7a7a', replaced with 'black'
173
+ Tests/svg-wordle.svg:132: Style property 'fill' promoted to attribute
174
+ Tests/svg-wordle.svg:132: Style property 'fill-opacity' promoted to attribute
175
+ Tests/svg-wordle.svg:132: Style property 'fill-rule' promoted to attribute
176
+ Tests/svg-wordle.svg:132: Style property 'stroke' promoted to attribute
177
+ Tests/svg-wordle.svg:132: The attribute 'fill' does not allow the value '#3d0300', replaced with 'black'
178
+ Tests/svg-wordle.svg:135: Style property 'fill' promoted to attribute
179
+ Tests/svg-wordle.svg:135: Style property 'fill-opacity' promoted to attribute
180
+ Tests/svg-wordle.svg:135: Style property 'fill-rule' promoted to attribute
181
+ Tests/svg-wordle.svg:135: Style property 'stroke' promoted to attribute
182
+ Tests/svg-wordle.svg:135: The attribute 'fill' does not allow the value '#d2d2d2', replaced with 'black'
183
+ Tests/svg-wordle.svg:138: Style property 'fill' promoted to attribute
184
+ Tests/svg-wordle.svg:138: Style property 'fill-opacity' promoted to attribute
185
+ Tests/svg-wordle.svg:138: Style property 'fill-rule' promoted to attribute
186
+ Tests/svg-wordle.svg:138: Style property 'stroke' promoted to attribute
187
+ Tests/svg-wordle.svg:138: The attribute 'fill' does not allow the value '#760b00', replaced with 'black'
188
+ Tests/svg-wordle.svg:141: Style property 'fill' promoted to attribute
189
+ Tests/svg-wordle.svg:141: Style property 'fill-opacity' promoted to attribute
190
+ Tests/svg-wordle.svg:141: Style property 'fill-rule' promoted to attribute
191
+ Tests/svg-wordle.svg:141: Style property 'stroke' promoted to attribute
192
+ Tests/svg-wordle.svg:141: The attribute 'fill' does not allow the value '#4d0400', replaced with 'black'
193
+ Tests/svg-wordle.svg:144: Style property 'fill' promoted to attribute
194
+ Tests/svg-wordle.svg:144: Style property 'fill-opacity' promoted to attribute
195
+ Tests/svg-wordle.svg:144: Style property 'fill-rule' promoted to attribute
196
+ Tests/svg-wordle.svg:144: Style property 'stroke' promoted to attribute
197
+ Tests/svg-wordle.svg:144: The attribute 'fill' does not allow the value '#dcdcdc', replaced with 'black'
198
+ Tests/svg-wordle.svg:147: Style property 'fill' promoted to attribute
199
+ Tests/svg-wordle.svg:147: Style property 'fill-opacity' promoted to attribute
200
+ Tests/svg-wordle.svg:147: Style property 'fill-rule' promoted to attribute
201
+ Tests/svg-wordle.svg:147: Style property 'stroke' promoted to attribute
202
+ Tests/svg-wordle.svg:147: The attribute 'fill' does not allow the value '#ad7c7b', replaced with 'black'
203
+ Tests/svg-wordle.svg:150: Style property 'fill' promoted to attribute
204
+ Tests/svg-wordle.svg:150: Style property 'fill-opacity' promoted to attribute
205
+ Tests/svg-wordle.svg:150: Style property 'fill-rule' promoted to attribute
206
+ Tests/svg-wordle.svg:150: Style property 'stroke' promoted to attribute
207
+ Tests/svg-wordle.svg:150: The attribute 'fill' does not allow the value '#818181', replaced with 'black'
208
+ Tests/svg-wordle.svg:153: Style property 'fill' promoted to attribute
209
+ Tests/svg-wordle.svg:153: Style property 'fill-opacity' promoted to attribute
210
+ Tests/svg-wordle.svg:153: Style property 'fill-rule' promoted to attribute
211
+ Tests/svg-wordle.svg:153: Style property 'stroke' promoted to attribute
212
+ Tests/svg-wordle.svg:153: The attribute 'fill' does not allow the value '#a57675', replaced with 'black'
213
+ Tests/svg-wordle.svg:156: Style property 'fill' promoted to attribute
214
+ Tests/svg-wordle.svg:156: Style property 'fill-opacity' promoted to attribute
215
+ Tests/svg-wordle.svg:156: Style property 'fill-rule' promoted to attribute
216
+ Tests/svg-wordle.svg:156: Style property 'stroke' promoted to attribute
217
+ Tests/svg-wordle.svg:156: The attribute 'fill' does not allow the value '#b27f7e', replaced with 'black'
218
+ Tests/svg-wordle.svg:159: Style property 'fill' promoted to attribute
219
+ Tests/svg-wordle.svg:159: Style property 'fill-opacity' promoted to attribute
220
+ Tests/svg-wordle.svg:159: Style property 'fill-rule' promoted to attribute
221
+ Tests/svg-wordle.svg:159: Style property 'stroke' promoted to attribute
222
+ Tests/svg-wordle.svg:159: The attribute 'fill' does not allow the value '#d2d2d2', replaced with 'black'
223
+ Tests/svg-wordle.svg:162: Style property 'fill' promoted to attribute
224
+ Tests/svg-wordle.svg:162: Style property 'fill-opacity' promoted to attribute
225
+ Tests/svg-wordle.svg:162: Style property 'fill-rule' promoted to attribute
226
+ Tests/svg-wordle.svg:162: Style property 'stroke' promoted to attribute
227
+ Tests/svg-wordle.svg:162: The attribute 'fill' does not allow the value '#780b00', replaced with 'black'
228
+ Tests/svg-wordle.svg:165: Style property 'fill' promoted to attribute
229
+ Tests/svg-wordle.svg:165: Style property 'fill-opacity' promoted to attribute
230
+ Tests/svg-wordle.svg:165: Style property 'fill-rule' promoted to attribute
231
+ Tests/svg-wordle.svg:165: Style property 'stroke' promoted to attribute
232
+ Tests/svg-wordle.svg:165: The attribute 'fill' does not allow the value '#7d0d00', replaced with 'black'
233
+ Tests/svg-wordle.svg:168: Style property 'fill' promoted to attribute
234
+ Tests/svg-wordle.svg:168: Style property 'fill-opacity' promoted to attribute
235
+ Tests/svg-wordle.svg:168: Style property 'fill-rule' promoted to attribute
236
+ Tests/svg-wordle.svg:168: Style property 'stroke' promoted to attribute
237
+ Tests/svg-wordle.svg:168: The attribute 'fill' does not allow the value '#7e0d00', replaced with 'black'
238
+ Tests/svg-wordle.svg:171: Style property 'fill' promoted to attribute
239
+ Tests/svg-wordle.svg:171: Style property 'fill-opacity' promoted to attribute
240
+ Tests/svg-wordle.svg:171: Style property 'fill-rule' promoted to attribute
241
+ Tests/svg-wordle.svg:171: Style property 'stroke' promoted to attribute
242
+ Tests/svg-wordle.svg:171: The attribute 'fill' does not allow the value '#720a00', replaced with 'black'
243
+ Tests/svg-wordle.svg:174: Style property 'fill' promoted to attribute
244
+ Tests/svg-wordle.svg:174: Style property 'fill-opacity' promoted to attribute
245
+ Tests/svg-wordle.svg:174: Style property 'fill-rule' promoted to attribute
246
+ Tests/svg-wordle.svg:174: Style property 'stroke' promoted to attribute
247
+ Tests/svg-wordle.svg:174: The attribute 'fill' does not allow the value '#a37574', replaced with 'black'
248
+ Tests/svg-wordle.svg:177: Style property 'fill' promoted to attribute
249
+ Tests/svg-wordle.svg:177: Style property 'fill-opacity' promoted to attribute
250
+ Tests/svg-wordle.svg:177: Style property 'fill-rule' promoted to attribute
251
+ Tests/svg-wordle.svg:177: Style property 'stroke' promoted to attribute
252
+ Tests/svg-wordle.svg:177: The attribute 'fill' does not allow the value '#797979', replaced with 'black'
253
+ Tests/svg-wordle.svg:180: Style property 'fill' promoted to attribute
254
+ Tests/svg-wordle.svg:180: Style property 'fill-opacity' promoted to attribute
255
+ Tests/svg-wordle.svg:180: Style property 'fill-rule' promoted to attribute
256
+ Tests/svg-wordle.svg:180: Style property 'stroke' promoted to attribute
257
+ Tests/svg-wordle.svg:180: The attribute 'fill' does not allow the value '#797979', replaced with 'black'
258
+ Tests/svg-wordle.svg:183: Style property 'fill' promoted to attribute
259
+ Tests/svg-wordle.svg:183: Style property 'fill-opacity' promoted to attribute
260
+ Tests/svg-wordle.svg:183: Style property 'fill-rule' promoted to attribute
261
+ Tests/svg-wordle.svg:183: Style property 'stroke' promoted to attribute
262
+ Tests/svg-wordle.svg:183: The attribute 'fill' does not allow the value '#d9d9d9', replaced with 'black'
263
+ Tests/svg-wordle.svg:186: Style property 'fill' promoted to attribute
264
+ Tests/svg-wordle.svg:186: Style property 'fill-opacity' promoted to attribute
265
+ Tests/svg-wordle.svg:186: Style property 'fill-rule' promoted to attribute
266
+ Tests/svg-wordle.svg:186: Style property 'stroke' promoted to attribute
267
+ Tests/svg-wordle.svg:186: The attribute 'fill' does not allow the value '#780b00', replaced with 'black'
268
+ Tests/svg-wordle.svg:189: Style property 'fill' promoted to attribute
269
+ Tests/svg-wordle.svg:189: Style property 'fill-opacity' promoted to attribute
270
+ Tests/svg-wordle.svg:189: Style property 'fill-rule' promoted to attribute
271
+ Tests/svg-wordle.svg:189: Style property 'stroke' promoted to attribute
272
+ Tests/svg-wordle.svg:189: The attribute 'fill' does not allow the value '#780b00', replaced with 'black'
273
+ Tests/svg-wordle.svg:192: Style property 'fill' promoted to attribute
274
+ Tests/svg-wordle.svg:192: Style property 'fill-opacity' promoted to attribute
275
+ Tests/svg-wordle.svg:192: Style property 'fill-rule' promoted to attribute
276
+ Tests/svg-wordle.svg:192: Style property 'stroke' promoted to attribute
277
+ Tests/svg-wordle.svg:192: The attribute 'fill' does not allow the value '#6f6f6f', replaced with 'black'
278
+ Tests/svg-wordle.svg:195: Style property 'fill' promoted to attribute
279
+ Tests/svg-wordle.svg:195: Style property 'fill-opacity' promoted to attribute
280
+ Tests/svg-wordle.svg:195: Style property 'fill-rule' promoted to attribute
281
+ Tests/svg-wordle.svg:195: Style property 'stroke' promoted to attribute
282
+ Tests/svg-wordle.svg:195: The attribute 'fill' does not allow the value '#cecece', replaced with 'black'
283
+ Tests/svg-wordle.svg:198: Style property 'fill' promoted to attribute
284
+ Tests/svg-wordle.svg:198: Style property 'fill-opacity' promoted to attribute
285
+ Tests/svg-wordle.svg:198: Style property 'fill-rule' promoted to attribute
286
+ Tests/svg-wordle.svg:198: Style property 'stroke' promoted to attribute
287
+ Tests/svg-wordle.svg:198: The attribute 'fill' does not allow the value '#770b00', replaced with 'black'
288
+ Tests/svg-wordle.svg:201: Style property 'fill' promoted to attribute
289
+ Tests/svg-wordle.svg:201: Style property 'fill-opacity' promoted to attribute
290
+ Tests/svg-wordle.svg:201: Style property 'fill-rule' promoted to attribute
291
+ Tests/svg-wordle.svg:201: Style property 'stroke' promoted to attribute
292
+ Tests/svg-wordle.svg:201: The attribute 'fill' does not allow the value '#d7d7d7', replaced with 'black'
293
+ Tests/svg-wordle.svg:204: Style property 'fill' promoted to attribute
294
+ Tests/svg-wordle.svg:204: Style property 'fill-opacity' promoted to attribute
295
+ Tests/svg-wordle.svg:204: Style property 'fill-rule' promoted to attribute
296
+ Tests/svg-wordle.svg:204: Style property 'stroke' promoted to attribute
297
+ Tests/svg-wordle.svg:204: The attribute 'fill' does not allow the value '#dddddd', replaced with 'black'
298
+ Tests/svg-wordle.svg:207: Style property 'fill' promoted to attribute
299
+ Tests/svg-wordle.svg:207: Style property 'fill-opacity' promoted to attribute
300
+ Tests/svg-wordle.svg:207: Style property 'fill-rule' promoted to attribute
301
+ Tests/svg-wordle.svg:207: Style property 'stroke' promoted to attribute
302
+ Tests/svg-wordle.svg:207: The attribute 'fill' does not allow the value '#3c0300', replaced with 'black'
303
+ Tests/svg-wordle.svg:210: Style property 'fill' promoted to attribute
304
+ Tests/svg-wordle.svg:210: Style property 'fill-opacity' promoted to attribute
305
+ Tests/svg-wordle.svg:210: Style property 'fill-rule' promoted to attribute
306
+ Tests/svg-wordle.svg:210: Style property 'stroke' promoted to attribute
307
+ Tests/svg-wordle.svg:210: The attribute 'fill' does not allow the value '#750b00', replaced with 'black'
308
+ Tests/svg-wordle.svg:213: Style property 'fill' promoted to attribute
309
+ Tests/svg-wordle.svg:213: Style property 'fill-opacity' promoted to attribute
310
+ Tests/svg-wordle.svg:213: Style property 'fill-rule' promoted to attribute
311
+ Tests/svg-wordle.svg:213: Style property 'stroke' promoted to attribute
312
+ Tests/svg-wordle.svg:213: The attribute 'fill' does not allow the value '#840e00', replaced with 'black'
313
+ Tests/svg-wordle.svg:216: Style property 'fill' promoted to attribute
314
+ Tests/svg-wordle.svg:216: Style property 'fill-opacity' promoted to attribute
315
+ Tests/svg-wordle.svg:216: Style property 'fill-rule' promoted to attribute
316
+ Tests/svg-wordle.svg:216: Style property 'stroke' promoted to attribute
317
+ Tests/svg-wordle.svg:216: The attribute 'fill' does not allow the value '#d8d8d8', replaced with 'black'
318
+ Tests/svg-wordle.svg:219: Style property 'fill' promoted to attribute
319
+ Tests/svg-wordle.svg:219: Style property 'fill-opacity' promoted to attribute
320
+ Tests/svg-wordle.svg:219: Style property 'fill-rule' promoted to attribute
321
+ Tests/svg-wordle.svg:219: Style property 'stroke' promoted to attribute
322
+ Tests/svg-wordle.svg:219: The attribute 'fill' does not allow the value '#747474', replaced with 'black'
323
+ Tests/svg-wordle.svg:222: Style property 'fill' promoted to attribute
324
+ Tests/svg-wordle.svg:222: Style property 'fill-opacity' promoted to attribute
325
+ Tests/svg-wordle.svg:222: Style property 'fill-rule' promoted to attribute
326
+ Tests/svg-wordle.svg:222: Style property 'stroke' promoted to attribute
327
+ Tests/svg-wordle.svg:222: The attribute 'fill' does not allow the value '#a27473', replaced with 'black'
328
+ Tests/svg-wordle.svg:225: Style property 'fill' promoted to attribute
329
+ Tests/svg-wordle.svg:225: Style property 'fill-opacity' promoted to attribute
330
+ Tests/svg-wordle.svg:225: Style property 'fill-rule' promoted to attribute
331
+ Tests/svg-wordle.svg:225: Style property 'stroke' promoted to attribute
332
+ Tests/svg-wordle.svg:225: The attribute 'fill' does not allow the value '#4b0400', replaced with 'black'
333
+ Tests/svg-wordle.svg:228: Style property 'fill' promoted to attribute
334
+ Tests/svg-wordle.svg:228: Style property 'fill-opacity' promoted to attribute
335
+ Tests/svg-wordle.svg:228: Style property 'fill-rule' promoted to attribute
336
+ Tests/svg-wordle.svg:228: Style property 'stroke' promoted to attribute
337
+ Tests/svg-wordle.svg:228: The attribute 'fill' does not allow the value '#4d0400', replaced with 'black'
338
+ Tests/svg-wordle.svg:231: Style property 'fill' promoted to attribute
339
+ Tests/svg-wordle.svg:231: Style property 'fill-opacity' promoted to attribute
340
+ Tests/svg-wordle.svg:231: Style property 'fill-rule' promoted to attribute
341
+ Tests/svg-wordle.svg:231: Style property 'stroke' promoted to attribute
342
+ Tests/svg-wordle.svg:231: The attribute 'fill' does not allow the value '#410300', replaced with 'black'
343
+ Tests/svg-wordle.svg:234: Style property 'fill' promoted to attribute
344
+ Tests/svg-wordle.svg:234: Style property 'fill-opacity' promoted to attribute
345
+ Tests/svg-wordle.svg:234: Style property 'fill-rule' promoted to attribute
346
+ Tests/svg-wordle.svg:234: Style property 'stroke' promoted to attribute
347
+ Tests/svg-wordle.svg:234: The attribute 'fill' does not allow the value '#a97978', replaced with 'black'
348
+ Tests/svg-wordle.svg:237: Style property 'fill' promoted to attribute
349
+ Tests/svg-wordle.svg:237: Style property 'fill-opacity' promoted to attribute
350
+ Tests/svg-wordle.svg:237: Style property 'fill-rule' promoted to attribute
351
+ Tests/svg-wordle.svg:237: Style property 'stroke' promoted to attribute
352
+ Tests/svg-wordle.svg:237: The attribute 'fill' does not allow the value '#d9d9d9', replaced with 'black'
353
+ Tests/svg-wordle.svg:240: Style property 'fill' promoted to attribute
354
+ Tests/svg-wordle.svg:240: Style property 'fill-opacity' promoted to attribute
355
+ Tests/svg-wordle.svg:240: Style property 'fill-rule' promoted to attribute
356
+ Tests/svg-wordle.svg:240: Style property 'stroke' promoted to attribute
357
+ Tests/svg-wordle.svg:240: The attribute 'fill' does not allow the value '#747474', replaced with 'black'
358
+ Tests/svg-wordle.svg:243: Style property 'fill' promoted to attribute
359
+ Tests/svg-wordle.svg:243: Style property 'fill-opacity' promoted to attribute
360
+ Tests/svg-wordle.svg:243: Style property 'fill-rule' promoted to attribute
361
+ Tests/svg-wordle.svg:243: Style property 'stroke' promoted to attribute
362
+ Tests/svg-wordle.svg:243: The attribute 'fill' does not allow the value '#720a00', replaced with 'black'
363
+ Tests/svg-wordle.svg:246: Style property 'fill' promoted to attribute
364
+ Tests/svg-wordle.svg:246: Style property 'fill-opacity' promoted to attribute
365
+ Tests/svg-wordle.svg:246: Style property 'fill-rule' promoted to attribute
366
+ Tests/svg-wordle.svg:246: Style property 'stroke' promoted to attribute
367
+ Tests/svg-wordle.svg:246: The attribute 'fill' does not allow the value '#cecece', replaced with 'black'
368
+ Tests/svg-wordle.svg:249: Style property 'fill' promoted to attribute
369
+ Tests/svg-wordle.svg:249: Style property 'fill-opacity' promoted to attribute
370
+ Tests/svg-wordle.svg:249: Style property 'fill-rule' promoted to attribute
371
+ Tests/svg-wordle.svg:249: Style property 'stroke' promoted to attribute
372
+ Tests/svg-wordle.svg:249: The attribute 'fill' does not allow the value '#800d00', replaced with 'black'
373
+ Tests/svg-wordle.svg:252: Style property 'fill' promoted to attribute
374
+ Tests/svg-wordle.svg:252: Style property 'fill-opacity' promoted to attribute
375
+ Tests/svg-wordle.svg:252: Style property 'fill-rule' promoted to attribute
376
+ Tests/svg-wordle.svg:252: Style property 'stroke' promoted to attribute
377
+ Tests/svg-wordle.svg:252: The attribute 'fill' does not allow the value '#400300', replaced with 'black'
378
+ Tests/svg-wordle.svg:255: Style property 'fill' promoted to attribute
379
+ Tests/svg-wordle.svg:255: Style property 'fill-opacity' promoted to attribute
380
+ Tests/svg-wordle.svg:255: Style property 'fill-rule' promoted to attribute
381
+ Tests/svg-wordle.svg:255: Style property 'stroke' promoted to attribute
382
+ Tests/svg-wordle.svg:255: The attribute 'fill' does not allow the value '#490400', replaced with 'black'
383
+ Tests/svg-wordle.svg:258: Style property 'fill' promoted to attribute
384
+ Tests/svg-wordle.svg:258: Style property 'fill-opacity' promoted to attribute
385
+ Tests/svg-wordle.svg:258: Style property 'fill-rule' promoted to attribute
386
+ Tests/svg-wordle.svg:258: Style property 'stroke' promoted to attribute
387
+ Tests/svg-wordle.svg:258: The attribute 'fill' does not allow the value '#d1d0d1', replaced with 'black'
388
+ Tests/svg-wordle.svg:261: Style property 'fill' promoted to attribute
389
+ Tests/svg-wordle.svg:261: Style property 'fill-opacity' promoted to attribute
390
+ Tests/svg-wordle.svg:261: Style property 'fill-rule' promoted to attribute
391
+ Tests/svg-wordle.svg:261: Style property 'stroke' promoted to attribute
392
+ Tests/svg-wordle.svg:261: The attribute 'fill' does not allow the value '#760b00', replaced with 'black'
393
+ Tests/svg-wordle.svg:264: Style property 'fill' promoted to attribute
394
+ Tests/svg-wordle.svg:264: Style property 'fill-opacity' promoted to attribute
395
+ Tests/svg-wordle.svg:264: Style property 'fill-rule' promoted to attribute
396
+ Tests/svg-wordle.svg:264: Style property 'stroke' promoted to attribute
397
+ Tests/svg-wordle.svg:264: The attribute 'fill' does not allow the value '#3b0300', replaced with 'black'
398
+ Tests/svg-wordle.svg:267: Style property 'fill' promoted to attribute
399
+ Tests/svg-wordle.svg:267: Style property 'fill-opacity' promoted to attribute
400
+ Tests/svg-wordle.svg:267: Style property 'fill-rule' promoted to attribute
401
+ Tests/svg-wordle.svg:267: Style property 'stroke' promoted to attribute
402
+ Tests/svg-wordle.svg:267: The attribute 'fill' does not allow the value '#4a0400', replaced with 'black'
403
+ Tests/svg-wordle.svg:270: Style property 'fill' promoted to attribute
404
+ Tests/svg-wordle.svg:270: Style property 'fill-opacity' promoted to attribute
405
+ Tests/svg-wordle.svg:270: Style property 'fill-rule' promoted to attribute
406
+ Tests/svg-wordle.svg:270: Style property 'stroke' promoted to attribute
407
+ Tests/svg-wordle.svg:270: The attribute 'fill' does not allow the value '#490400', replaced with 'black'
408
+ Tests/svg-wordle.svg:273: Style property 'fill' promoted to attribute
409
+ Tests/svg-wordle.svg:273: Style property 'fill-opacity' promoted to attribute
410
+ Tests/svg-wordle.svg:273: Style property 'fill-rule' promoted to attribute
411
+ Tests/svg-wordle.svg:273: Style property 'stroke' promoted to attribute
412
+ Tests/svg-wordle.svg:273: The attribute 'fill' does not allow the value '#a57675', replaced with 'black'
413
+ Tests/svg-wordle.svg:276: Style property 'fill' promoted to attribute
414
+ Tests/svg-wordle.svg:276: Style property 'fill-opacity' promoted to attribute
415
+ Tests/svg-wordle.svg:276: Style property 'fill-rule' promoted to attribute
416
+ Tests/svg-wordle.svg:276: Style property 'stroke' promoted to attribute
417
+ Tests/svg-wordle.svg:276: The attribute 'fill' does not allow the value '#a17372', replaced with 'black'
418
+ Tests/svg-wordle.svg:279: Style property 'fill' promoted to attribute
419
+ Tests/svg-wordle.svg:279: Style property 'fill-opacity' promoted to attribute
420
+ Tests/svg-wordle.svg:279: Style property 'fill-rule' promoted to attribute
421
+ Tests/svg-wordle.svg:279: Style property 'stroke' promoted to attribute
422
+ Tests/svg-wordle.svg:279: The attribute 'fill' does not allow the value '#3e0300', replaced with 'black'
423
+ Tests/svg-wordle.svg:282: Style property 'fill' promoted to attribute
424
+ Tests/svg-wordle.svg:282: Style property 'fill-opacity' promoted to attribute
425
+ Tests/svg-wordle.svg:282: Style property 'fill-rule' promoted to attribute
426
+ Tests/svg-wordle.svg:282: Style property 'stroke' promoted to attribute
427
+ Tests/svg-wordle.svg:282: The attribute 'fill' does not allow the value '#d1d0d1', replaced with 'black'
428
+ Tests/svg-wordle.svg:285: Style property 'fill' promoted to attribute
429
+ Tests/svg-wordle.svg:285: Style property 'fill-opacity' promoted to attribute
430
+ Tests/svg-wordle.svg:285: Style property 'fill-rule' promoted to attribute
431
+ Tests/svg-wordle.svg:285: Style property 'stroke' promoted to attribute
432
+ Tests/svg-wordle.svg:285: The attribute 'fill' does not allow the value '#3b0300', replaced with 'black'
433
+ Tests/svg-wordle.svg:288: Style property 'fill' promoted to attribute
434
+ Tests/svg-wordle.svg:288: Style property 'fill-opacity' promoted to attribute
435
+ Tests/svg-wordle.svg:288: Style property 'fill-rule' promoted to attribute
436
+ Tests/svg-wordle.svg:288: Style property 'stroke' promoted to attribute
437
+ Tests/svg-wordle.svg:288: The attribute 'fill' does not allow the value '#a77877', replaced with 'black'
438
+ Tests/svg-wordle.svg:291: Style property 'fill' promoted to attribute
439
+ Tests/svg-wordle.svg:291: Style property 'fill-opacity' promoted to attribute
440
+ Tests/svg-wordle.svg:291: Style property 'fill-rule' promoted to attribute
441
+ Tests/svg-wordle.svg:291: Style property 'stroke' promoted to attribute
442
+ Tests/svg-wordle.svg:291: The attribute 'fill' does not allow the value '#dbdbdb', replaced with 'black'
443
+ Tests/svg-wordle.svg:294: Style property 'fill' promoted to attribute
444
+ Tests/svg-wordle.svg:294: Style property 'fill-opacity' promoted to attribute
445
+ Tests/svg-wordle.svg:294: Style property 'fill-rule' promoted to attribute
446
+ Tests/svg-wordle.svg:294: Style property 'stroke' promoted to attribute
447
+ Tests/svg-wordle.svg:294: The attribute 'fill' does not allow the value '#787878', replaced with 'black'
448
+ Tests/svg-wordle.svg:297: Style property 'fill' promoted to attribute
449
+ Tests/svg-wordle.svg:297: Style property 'fill-opacity' promoted to attribute
450
+ Tests/svg-wordle.svg:297: Style property 'fill-rule' promoted to attribute
451
+ Tests/svg-wordle.svg:297: Style property 'stroke' promoted to attribute
452
+ Tests/svg-wordle.svg:297: The attribute 'fill' does not allow the value '#7e0d00', replaced with 'black'
453
+ Tests/svg-wordle.svg:300: Style property 'fill' promoted to attribute
454
+ Tests/svg-wordle.svg:300: Style property 'fill-opacity' promoted to attribute
455
+ Tests/svg-wordle.svg:300: Style property 'fill-rule' promoted to attribute
456
+ Tests/svg-wordle.svg:300: Style property 'stroke' promoted to attribute
457
+ Tests/svg-wordle.svg:300: The attribute 'fill' does not allow the value '#760b00', replaced with 'black'
458
+ Tests/svg-wordle.svg:303: Style property 'fill' promoted to attribute
459
+ Tests/svg-wordle.svg:303: Style property 'fill-opacity' promoted to attribute
460
+ Tests/svg-wordle.svg:303: Style property 'fill-rule' promoted to attribute
461
+ Tests/svg-wordle.svg:303: Style property 'stroke' promoted to attribute
462
+ Tests/svg-wordle.svg:303: The attribute 'fill' does not allow the value '#4a0400', replaced with 'black'
463
+ Tests/svg-wordle.svg:306: Style property 'fill' promoted to attribute
464
+ Tests/svg-wordle.svg:306: Style property 'fill-opacity' promoted to attribute
465
+ Tests/svg-wordle.svg:306: Style property 'fill-rule' promoted to attribute
466
+ Tests/svg-wordle.svg:306: Style property 'stroke' promoted to attribute
467
+ Tests/svg-wordle.svg:306: The attribute 'fill' does not allow the value '#440400', replaced with 'black'
468
+ Tests/svg-wordle.svg:309: Style property 'fill' promoted to attribute
469
+ Tests/svg-wordle.svg:309: Style property 'fill-opacity' promoted to attribute
470
+ Tests/svg-wordle.svg:309: Style property 'fill-rule' promoted to attribute
471
+ Tests/svg-wordle.svg:309: Style property 'stroke' promoted to attribute
472
+ Tests/svg-wordle.svg:309: The attribute 'fill' does not allow the value '#7f7f7f', replaced with 'black'
473
+ Tests/svg-wordle.svg:312: Style property 'fill' promoted to attribute
474
+ Tests/svg-wordle.svg:312: Style property 'fill-opacity' promoted to attribute
475
+ Tests/svg-wordle.svg:312: Style property 'fill-rule' promoted to attribute
476
+ Tests/svg-wordle.svg:312: Style property 'stroke' promoted to attribute
477
+ Tests/svg-wordle.svg:312: The attribute 'fill' does not allow the value '#460400', replaced with 'black'
478
+ Tests/svg-wordle.svg:315: Style property 'fill' promoted to attribute
479
+ Tests/svg-wordle.svg:315: Style property 'fill-opacity' promoted to attribute
480
+ Tests/svg-wordle.svg:315: Style property 'fill-rule' promoted to attribute
481
+ Tests/svg-wordle.svg:315: Style property 'stroke' promoted to attribute
482
+ Tests/svg-wordle.svg:315: The attribute 'fill' does not allow the value '#400300', replaced with 'black'
483
+ Tests/svg-wordle.svg:318: Style property 'fill' promoted to attribute
484
+ Tests/svg-wordle.svg:318: Style property 'fill-opacity' promoted to attribute
485
+ Tests/svg-wordle.svg:318: Style property 'fill-rule' promoted to attribute
486
+ Tests/svg-wordle.svg:318: Style property 'stroke' promoted to attribute
487
+ Tests/svg-wordle.svg:318: The attribute 'fill' does not allow the value '#3d0300', replaced with 'black'
488
+ Tests/svg-wordle.svg:321: Style property 'fill' promoted to attribute
489
+ Tests/svg-wordle.svg:321: Style property 'fill-opacity' promoted to attribute
490
+ Tests/svg-wordle.svg:321: Style property 'fill-rule' promoted to attribute
491
+ Tests/svg-wordle.svg:321: Style property 'stroke' promoted to attribute
492
+ Tests/svg-wordle.svg:321: The attribute 'fill' does not allow the value '#747474', replaced with 'black'
493
+ Tests/svg-wordle.svg:324: Style property 'fill' promoted to attribute
494
+ Tests/svg-wordle.svg:324: Style property 'fill-opacity' promoted to attribute
495
+ Tests/svg-wordle.svg:324: Style property 'fill-rule' promoted to attribute
496
+ Tests/svg-wordle.svg:324: Style property 'stroke' promoted to attribute
497
+ Tests/svg-wordle.svg:324: The attribute 'fill' does not allow the value '#818181', replaced with 'black'
498
+ Tests/svg-wordle.svg:327: Style property 'fill' promoted to attribute
499
+ Tests/svg-wordle.svg:327: Style property 'fill-opacity' promoted to attribute
500
+ Tests/svg-wordle.svg:327: Style property 'fill-rule' promoted to attribute
501
+ Tests/svg-wordle.svg:327: Style property 'stroke' promoted to attribute
502
+ Tests/svg-wordle.svg:327: The attribute 'fill' does not allow the value '#af7e7d', replaced with 'black'
503
+ Tests/svg-wordle.svg:330: Style property 'fill' promoted to attribute
504
+ Tests/svg-wordle.svg:330: Style property 'fill-opacity' promoted to attribute
505
+ Tests/svg-wordle.svg:330: Style property 'fill-rule' promoted to attribute
506
+ Tests/svg-wordle.svg:330: Style property 'stroke' promoted to attribute
507
+ Tests/svg-wordle.svg:330: The attribute 'fill' does not allow the value '#757575', replaced with 'black'
508
+ ERROR: File does not conform to SVG requirements
File without changes
@@ -0,0 +1,27 @@
1
+ <?xml version='1.0' encoding='utf-8'?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" height="100" width="100" datatype="foobar" viewBox="0 0 100.0 100.0">
3
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
4
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
5
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
6
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
7
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
8
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="white"/>
9
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="white"/>
10
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="white"/>
11
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
12
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
13
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="#ffffff"/>
14
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="#000000"/>
15
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
16
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
17
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
18
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
19
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
20
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="white"/>
21
+
22
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
23
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
24
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
25
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="white"/>
26
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
27
+ </svg>
@@ -0,0 +1,20 @@
1
+ Tests/threshold.svg:2: The attribute 'fill' does not allow the value 'red', replaced with 'black'
2
+ Tests/threshold.svg:3: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
3
+ Tests/threshold.svg:4: The attribute 'fill' does not allow the value 'rgb(126,126,126)', replaced with 'black'
4
+ Tests/threshold.svg:5: The attribute 'fill' does not allow the value 'rgb(128,128,128)', replaced with 'black'
5
+ Tests/threshold.svg:6: The attribute 'fill' does not allow the value 'rgb(128,128,182)', replaced with 'black'
6
+ Tests/threshold.svg:7: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
7
+ Tests/threshold.svg:8: The attribute 'fill' does not allow the value 'rgb(400,255,255)', replaced with 'white'
8
+ Tests/threshold.svg:9: The attribute 'fill' does not allow the value '#fff', replaced with 'white'
9
+ Tests/threshold.svg:10: The attribute 'fill' does not allow the value '#aaa', replaced with 'black'
10
+ Tests/threshold.svg:11: The attribute 'fill' does not allow the value '#000', replaced with 'black'
11
+ Tests/threshold.svg:14: The attribute 'fill' does not allow the value '#0a0a0a', replaced with 'black'
12
+ Tests/threshold.svg:15: The attribute 'fill' does not allow the value 'rgb(0%,0%,0%)', replaced with 'black'
13
+ Tests/threshold.svg:16: The attribute 'fill' does not allow the value 'rgb(49%,50%,50%)', replaced with 'black'
14
+ Tests/threshold.svg:17: The attribute 'fill' does not allow the value 'rgb(51%,50%,50%)', replaced with 'black'
15
+ Tests/threshold.svg:18: The attribute 'fill' does not allow the value 'rgb(75%,75%,75%)', replaced with 'black'
16
+ Tests/threshold.svg:19: The attribute 'fill' does not allow the value 'rgb(100%,255,255)', replaced with 'white'
17
+ Tests/threshold.svg:21: The attribute 'fill' does not allow the value 'grey', replaced with 'black'
18
+ Tests/threshold.svg:22: The attribute 'fill' does not allow the value 'gray', replaced with 'black'
19
+ Tests/threshold.svg:25: The attribute 'fill' does not allow the value 'unknown', replaced with 'black'
20
+ ERROR: File does not conform to SVG requirements
File without changes