codecov-io: # [Codecov](https://codecov.io/gh/html5lib/html5lib-python/pull/396?src=pr&el=h1) Report
> Merging [#396](https://codecov.io/gh/html5lib/html5lib-python/pull/396?src=pr&el=desc) into [master](https://codecov.io/gh/html5lib/html5lib-python/commit/4f9235752cea29c5a31721440578b430823a1e69?src=pr&el=desc) will **decrease** coverage by `0.01%`.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/html5lib/html5lib-python/pull/396/graphs/tree.svg?width=650&token=jxme1XHT1Q&height=150&src=pr)](https://codecov.io/gh/html5lib/html5lib-python/pull/396?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master     #396      +/-   ##
==========================================
- Coverage   90.79%   90.77%   -0.02%     
==========================================
  Files          50       50              
  Lines        6952     6962      +10     
  Branches     1328     1328              
==========================================
+ Hits         6312     6320       +8     
- Misses        481      483       +2     
  Partials      159      159
```


| [Impacted Files](https://codecov.io/gh/html5lib/html5lib-python/pull/396?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [html5lib/filters/sanitizer.py](https://codecov.io/gh/html5lib/html5lib-python/pull/396/diff?src=pr&el=tree#diff-aHRtbDVsaWIvZmlsdGVycy9zYW5pdGl6ZXIucHk=) | `93.16% <ø> (ø)` | :arrow_up: |
| [html5lib/constants.py](https://codecov.io/gh/html5lib/html5lib-python/pull/396/diff?src=pr&el=tree#diff-aHRtbDVsaWIvY29uc3RhbnRzLnB5) | `100% <ø> (ø)` | :arrow_up: |
| [html5lib/tests/test\_sanitizer.py](https://codecov.io/gh/html5lib/html5lib-python/pull/396/diff?src=pr&el=tree#diff-aHRtbDVsaWIvdGVzdHMvdGVzdF9zYW5pdGl6ZXIucHk=) | `95.34% <100%> (+0.75%)` | :arrow_up: |
| [html5lib/\_trie/\_base.py](https://codecov.io/gh/html5lib/html5lib-python/pull/396/diff?src=pr&el=tree#diff-aHRtbDVsaWIvX3RyaWUvX2Jhc2UucHk=) | `56.52% <0%> (-5.02%)` | :arrow_down: |
| [html5lib/\_inputstream.py](https://codecov.io/gh/html5lib/html5lib-python/pull/396/diff?src=pr&el=tree#diff-aHRtbDVsaWIvX2lucHV0c3RyZWFtLnB5) | `91.62% <0%> (-0.3%)` | :arrow_down: |
| [html5lib/treebuilders/dom.py](https://codecov.io/gh/html5lib/html5lib-python/pull/396/diff?src=pr&el=tree#diff-aHRtbDVsaWIvdHJlZWJ1aWxkZXJzL2RvbS5weQ==) | `89.22% <0%> (-0.2%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/html5lib/html5lib-python/pull/396?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/html5lib/html5lib-python/pull/396?src=pr&el=footer). Last update [4f92357...4b34642](https://codecov.io/gh/html5lib/html5lib-python/pull/396?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

diff --git a/CHANGES.rst b/CHANGES.rst
index cf95ea0..47dcda3 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -11,10 +11,15 @@ Features:
 * Add support for the ``<wbr>`` element in the sanitizer, `which indicates
   a line break opportunity <https://html.spec.whatwg.org/#the-wbr-element>`_.
   This element is allowed by default. (#395) (Thank you, Tom Most!)
+* Add support for serializing the ``<ol reversed>`` boolean attribute. (Thank
+  you, Tom Most!) (#396)
+* The ``<ol reversed>`` and ``<ol start>`` attributes are now permitted by the
+  sanitizer. (#321) (Thank you, Tom Most!)
 
 Bug fixes:
 
-* The sanitizer now permits ``<summary>`` tags.
+* The sanitizer now permits ``<summary>`` tags. It used to allow ``<details>``
+  already. (#423)
 
 1.1
 ~~~
diff --git a/html5lib/constants.py b/html5lib/constants.py
index e83bfb5..2fa4146 100644
--- a/html5lib/constants.py
+++ b/html5lib/constants.py
@@ -617,6 +617,7 @@ booleanAttributes = {
     "button": frozenset(["disabled", "autofocus"]),
     "input": frozenset(["disabled", "readonly", "required", "autofocus", "checked", "ismap"]),
     "select": frozenset(["disabled", "readonly", "autofocus", "multiple"]),
+    "ol": frozenset(["reversed"]),
     "output": frozenset(["disabled", "readonly"]),
     "iframe": frozenset(["seamless"]),
 }
diff --git a/html5lib/filters/sanitizer.py b/html5lib/filters/sanitizer.py
index f7ac8d9..81c85d4 100644
--- a/html5lib/filters/sanitizer.py
+++ b/html5lib/filters/sanitizer.py
@@ -365,6 +365,7 @@ allowed_attributes = frozenset((
     (None, 'maxsize'),
     (None, 'minsize'),
     (None, 'other'),
+    (None, 'reversed'),
     (None, 'rowalign'),
     (None, 'rowalign'),
     (None, 'rowalign'),
@@ -375,6 +376,7 @@ allowed_attributes = frozenset((
     (None, 'scriptlevel'),
     (None, 'selection'),
     (None, 'separator'),
+    (None, 'start'),
     (None, 'stretchy'),
     (None, 'width'),
     (None, 'width'),

Sanitizer removes the <ol> "reversed" attribute
`reversed` is a boolean attribute on `<ol>` that can be used to make descending lists. The sanitizer seems to be stripping this (it's not included in `allowed_attributes`).

https://html.spec.whatwg.org/multipage/semantics.html#attr-ol-reversed
diff --git a/html5lib/tests/test_sanitizer.py b/html5lib/tests/test_sanitizer.py
index a6cbd79..499310b 100644
--- a/html5lib/tests/test_sanitizer.py
+++ b/html5lib/tests/test_sanitizer.py
@@ -154,3 +154,21 @@ def test_uppercase_color_codes_in_style():
     sanitized = sanitize_html("<p style=\"border: 1px solid #A2A2A2;\"></p>")
     expected = '<p style=\"border: 1px solid #A2A2A2;\"></p>'
     assert expected == sanitized
+
+
+def test_ol_start_allowed():
+    sanitized = sanitize_html("<ol start=2><li>.</ol>")
+    expected = '<ol start="2"><li>.</li></ol>'
+    assert expected == sanitized
+
+
+def test_ol_type_allowed():
+    sanitized = sanitize_html("<ol type=I><li>.</ol>")
+    expected = '<ol type="I"><li>.</li></ol>'
+    assert expected == sanitized
+
+
+def test_ol_reversed_allowed():
+    sanitized = sanitize_html("<ol reversed><li>.</ol>")
+    expected = '<ol reversed><li>.</li></ol>'
+    assert expected == sanitized

pip install -e .[all]
parse_log_pytest
requirements.txt
pytest flake8 pytest_expect u-msgpack-python
apt-get update apt-get install -y gcc
3.9
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
chardet==5.2.0
exceptiongroup==1.2.2
flake8==7.2.0
Genshi==0.7.9
-e git+https://github.com/html5lib/html5lib-python.git@82047b0e8506886255c5cca5954c870f84e3adda#egg=html5lib
iniconfig==2.1.0
lxml==5.3.1
mccabe==0.7.0
packaging==24.2
pluggy==1.5.0
pycodestyle==2.13.0
pyflakes==3.3.1
pytest==8.3.5
pytest-expect==1.1.0
six==1.17.0
tomli==2.2.1
u-msgpack-python==2.8.0
webencodings==0.5.1

name: html5lib-python
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - chardet==5.2.0
      - exceptiongroup==1.2.2
      - flake8==7.2.0
      - genshi==0.7.9
      - iniconfig==2.1.0
      - lxml==5.3.1
      - mccabe==0.7.0
      - packaging==24.2
      - pluggy==1.5.0
      - pycodestyle==2.13.0
      - pyflakes==3.3.1
      - pytest==8.3.5
      - pytest-expect==1.1.0
      - six==1.17.0
      - tomli==2.2.1
      - u-msgpack-python==2.8.0
      - webencodings==0.5.1
prefix: /opt/conda/envs/html5lib-python

html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_reversed_attribute] html5lib/tests/test_sanitizer.py::test_ol_reversed_allowed
html5lib/tests/test_sanitizer.py::test_should_handle_astral_plane_characters html5lib/tests/test_sanitizer.py::test_should_allow_relative_uris html5lib/tests/test_sanitizer.py::test_invalid_data_uri html5lib/tests/test_sanitizer.py::test_invalid_ipv6_url html5lib/tests/test_sanitizer.py::test_data_uri_disallowed_type html5lib/tests/test_sanitizer.py::test_wbr_allowed html5lib/tests/test_sanitizer.py::test_details_open_allowed html5lib/tests/test_sanitizer.py::test_details_summary_allowed html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_div_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_hr_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_li_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_sub_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_pre_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_figure_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_output_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_font_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_progress_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_multicol_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_a_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_audio_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_big_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_menu_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_sound_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_event-source_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_button_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_ol_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_span_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_ul_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_details_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_aside_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_small_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_br_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_label_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_tt_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_kbd_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_img_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_dialog_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_address_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_nav_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_form_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_b_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_s_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_samp_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_strong_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_video_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_dfn_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_nextid_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_strike_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_q_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_summary_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_spacer_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_command_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_time_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_datalist_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_legend_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_u_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_section_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_wbr_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_dl_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_h4_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_figcaption_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_fieldset_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_p_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_cite_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_code_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_del_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_canvas_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_dir_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_acronym_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_header_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_textarea_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_i_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_h1_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_map_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_em_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_m_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_source_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_dd_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_input_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_dt_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_datagrid_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_h2_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_abbr_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_footer_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_center_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_blockquote_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_meter_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_h5_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_sup_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_h6_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_area_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_var_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_keygen_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_ins_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_article_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_h3_tag] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_stemh_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_units-per-em_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_selection_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_hreflang_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_inputmode_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_id_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_rules_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_g1_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_x1_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_controls_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_wrap_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_by_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_accesskey_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_form_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_cx_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_d_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_stop-color_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_frame_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_template_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_radiogroup_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_fill-rule_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_charoff_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_face_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_bordercolorlight_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_lowsrc_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_orient_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_overline-thickness_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_equalcolumns_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_scriptlevel_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_widths_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_end_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_unicode-range_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_x_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_bottompadding_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_hidefocus_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_points_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_loopcount_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_step_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_ch_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_start_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_font-stretch_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_cols_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_equalrows_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_underline-position_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_ping_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_bgproperties_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_lspace_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_accent-height_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_autocomplete_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_noshade_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_restart_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_href_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_rightspacing_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_scope_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_columnalign_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_hanging_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_height_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_galleryimg_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_minsize_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_version_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_min_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_cy_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_fy_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_separator_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_actiontype_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_loopstart_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_repeat-min_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_fontstyle_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_rows_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_overline-position_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_align_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_datetime_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_mathvariant_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_leftspacing_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_label_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_x-height_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_dynsrc_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_datasrc_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_accumulate_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_src_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_color-rendering_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_underline-thickness_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_font-weight_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_fx_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_accept_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_preload_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_pqg_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_stroke-dasharray_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_color_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_disabled_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_unicode_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_gutter_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_challenge_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_text-anchor_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_suppress_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_autofocus_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_vrml_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_high_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_urn_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_linethickness_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_ascent_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_poster_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_border_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_visibility_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_rev_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_target_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_name_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_selected_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_width_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_fill-opacity_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_nowrap_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_glyph-name_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_choff_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_cite_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_toppadding_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_fence_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_panose-1_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_mathematical_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_depth_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_origin_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_datafld_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_default_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_font-family_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_value_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_rowspan_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_cellpadding_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_slope_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_strikethrough-thickness_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_g2_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_maxsize_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_y_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_dy_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_rspace_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_ry_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_columnspacing_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_readonly_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_hidden_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_summary_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_ismap_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_displaystyle_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_clip-path_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_hspace_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_repeat-max_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_opacity_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_unselectable_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_stroke-miterlimit_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_prompt_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_maxlength_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_balance_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_valign_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_title_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_mathcolor_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_max_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_low_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_bordercolordark_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_data_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_horiz-adv-x_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_for_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_method_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_fontweight_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_marker-start_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_required_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_mathbackground_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_descent_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_multiple_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_rx_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_loopend_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_loop_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_nohref_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_ideographic_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_vspace_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_enctype_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_optimum_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_alphabetic_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_bgcolor_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_replace_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_variable_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_font-variant_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_stroke_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_u1_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_dir_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_stroke-linecap_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_k_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_axis_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_datapagesize_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_coords_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_rowlines_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_values_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_font-size_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_background_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_stroke-dashoffset_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_arabic-form_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_content_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_y1_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_bbox_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_cap-height_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_stop-opacity_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_checked_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_y2_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_action_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_rotate_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_rel_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_bordercolor_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_volume_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_stroke-linejoin_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_charset_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_stroke-opacity_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_fill_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_draggable_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_other_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_stemv_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_open_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_stroke-width_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_r_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_lang_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_rowspacing_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_usemap_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_alt_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_horiz-origin-x_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_x2_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_strikethrough-position_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_rowalign_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_transform_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_pattern_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_cellspacing_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_marker-mid_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_type_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_accept-charset_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_u2_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_longdesc_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_icon_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_class_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_colspan_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_shape_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_size_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_dx_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_abbr_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_offset_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_to_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_span_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_delay_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_list_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_point-size_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_media_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_columnspan_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_compact_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_tabindex_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_path_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_clear_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_display_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_char_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_additive_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_font-style_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_columnlines_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_from_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_headers_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_begin_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_keytype_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_marker-end_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_contenteditable_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_stretchy_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_dur_attribute] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_gopher_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_data_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_urn_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_rtsp_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_nntp_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_xmpp_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_irc_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_ftp_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_ed2k_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_callto_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_webcal_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_rsync_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_feed_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_afs_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_ssh_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_https_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_http_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_mailto_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_tag_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_news_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_telnet_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_sftp_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_aim_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_GOPHER_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_DATA_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_URN_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_RTSP_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_NNTP_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_XMPP_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_IRC_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_FTP_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_ED2K_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_CALLTO_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_WEBCAL_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_RSYNC_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_FEED_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_AFS_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_SSH_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_HTTPS_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_HTTP_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_MAILTO_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_TAG_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_NEWS_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_TELNET_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_SFTP_uris] html5lib/tests/test_sanitizer.py::test_sanitizer[test_should_allow_uppercase_AIM_uris] html5lib/tests/test_sanitizer.py::test_lowercase_color_codes_in_style html5lib/tests/test_sanitizer.py::test_uppercase_color_codes_in_style html5lib/tests/test_sanitizer.py::test_ol_start_allowed html5lib/tests/test_sanitizer.py::test_ol_type_allowed
html5lib/constants.py html5lib/filters/sanitizer.py CHANGES.rst
html5lib/constants.py html5lib/filters/sanitizer.py CHANGES.rst