mirror of
https://github.com/twbs/bootstrap.git
synced 2024-12-01 13:24:25 +01:00
c031584bcd
* SVG accessibility fixes - add `focusable="false"` to all SVGs, to stop IE from including the `<svg>` in its default focus cycle - completely hide decorative SVGs using `aria-hidden="true"` - add `role="img"` to meaningful/"content" SVGs, ensure they have an appropriate `<title>` and/or `aria-label` - simplify placeholder default title * Simplify usage of placeholder.svg in the docs - in most cases, no need for separate/redundant text and title (now that we make text itself part of the alternative text explicitly) - no need (expect in rare cirumstances) to describe the placeholder image (unless the look of the image is important/the actual content, as is the case with the image thumbnail class) * Simplify example.html rewriting of <svg> to <img> code sample - as the `alt` for the placeholder isn't really important, just add an ellipsis instead (otherwise, to be correct, we'd have to construct the whole "title+text" construct like we do now in the placeholder.svg itself * Change svgo configuration to retain role attribute and add/force focusable=false - regarding `focusable=false`, see https://github.com/svg/svgo/issues/1011 (which would be the "proper" SVGO fix) and the (hacky) solution https://github.com/svg/svgo/pull/817
52 lines
1.8 KiB
HTML
52 lines
1.8 KiB
HTML
{%- comment -%}
|
||
Usage: include example.html content=markup [args],
|
||
where content is a capture with the HTML content
|
||
|
||
args can be one of the following:
|
||
id - null (default)
|
||
class - "bd-example" (default)
|
||
optional: hide_preview - disabled (default)
|
||
optional: hide_markup - disabled (default)
|
||
{%- endcomment -%}
|
||
|
||
{%- assign id = include.id -%}
|
||
{%- assign class = include.class -%}
|
||
|
||
{%- if include.hide_preview == null -%}
|
||
<div{% if id %} id="{{ id }}"{% endif %} class="bd-example{% if class %} {{ class }}{% endif %}">
|
||
{{- include.content -}}
|
||
</div>
|
||
{%- endif -%}
|
||
|
||
{%- if include.hide_markup == null -%}
|
||
{%- highlight html -%}
|
||
{%- if include.content contains '<svg class="bd-placeholder-img' -%}
|
||
{%- assign modified_content = include.content
|
||
| replace: '<svg class="bd-placeholder-img', '✂️<svg class="bd-placeholder-img'
|
||
| replace: '</svg>', '</svg>✂️'
|
||
| split: '✂️' -%}
|
||
|
||
{%- if include.content contains 'bd-placeholder-img ' -%}
|
||
{%- assign image_class = include.content
|
||
| replace_first: 'bd-placeholder-img', 'bd-placeholder-img ✂️'
|
||
| replace: '" width="', '✂️" width="'
|
||
| split: '✂️' -%}
|
||
{%- assign image_class = image_class[1] | replace: 'bd-placeholder-img-lg', '' | strip -%}
|
||
{%- endif -%}
|
||
|
||
{%- for content_chunk in modified_content -%}
|
||
{%- if content_chunk contains '<svg class="bd-placeholder-img' -%}
|
||
{%- capture img_placeholder -%}
|
||
<img src="..." {% if image_class %}class="{{ image_class }}" {% endif %}alt="...">
|
||
{%- endcapture -%}
|
||
{{- img_placeholder -}}
|
||
{%- else -%}
|
||
{{- content_chunk -}}
|
||
{%- endif -%}
|
||
{%- endfor -%}
|
||
{%- else -%}
|
||
{{- include.content -}}
|
||
{%- endif -%}
|
||
{%- endhighlight -%}
|
||
{%- endif -%}
|