Refine implementation of MD045/no-alt-text in previous commit.

This commit is contained in:
David Anson 2018-01-06 18:06:32 -08:00
parent 4fa837a031
commit f91f0880c3
7 changed files with 61 additions and 44 deletions

View file

@ -86,7 +86,7 @@ playground for learning and exploring.
* **[MD042](doc/Rules.md#md042)** *no-empty-links* - No empty links
* **[MD043](doc/Rules.md#md043)** *required-headers* - Required header structure
* **[MD044](doc/Rules.md#md044)** *proper-names* - Proper names should have the correct capitalization
* **[MD045](doc/Rules.md#md045)** *no-alt-text* - Images should have ALT Text attribute
* **[MD045](doc/Rules.md#md045)** *no-alt-text* - Images should have alternate text (alt text)
See [Rules.md](doc/Rules.md) for more details.

View file

@ -1246,10 +1246,32 @@ Set the `code_blocks` parameter to `false` to disable this rule for code blocks.
<a name="md045"></a>
## MD045 - Images should have ALT Text attribute
## MD045 - Images should have alternate text (alt text)
Tags: accessibility, images
Aliases: no-alt-text
This rule is triggered when an image is found with no alt text. This is a key concern for accessibility. [Guidance on how to write alt text for images](https://www.phase2technology.com/blog/no-more-excuses-definitive-guide-alt-text-field).
This rule is triggered when an image is missing alternate text (alt text) information.
Alternate text is important for accessibility, describing the content of an image for
people who may not be able to see it.
Alternate text is commonly specified inline as:
```md
![Alternate text](image.jpg)
```
Or with reference syntax as:
```md
![Alternate text][ref]
...
[ref]: image.jpg "Optional title"
```
Guidance for writing alternate text is available from the [W3C](https://www.w3.org/WAI/alt/),
[Wikipedia](https://en.wikipedia.org/wiki/Alt_attribute), and
[other locations](https://www.phase2technology.com/blog/no-more-excuses-definitive-guide-alt-text-field).

View file

@ -1222,20 +1222,16 @@ module.exports = [
},
{
"name": "MD045",
"desc": "Images should have ALT Text attribute",
"desc": "Images should have alternate text (alt text)",
"tags": [ "accessibility", "images" ],
"aliases": [ "no-alt-text" ],
"regexp": null,
"func": function MD045(params, errors) {
forEachInlineChild(params, "image", function forToken(token) {
if (token.content === "") {
token.attrs.forEach(function forAttr(attr) {
if (attr[0] === "alt" && attr[1] === "") {
errors.add(token.lineNumber);
}
});
}
});
}
}
];

View file

@ -957,12 +957,12 @@
"additionalProperties": false
},
"MD045": {
"description": "MD045/no-alt-text - Images should have ALT Text attribute",
"description": "MD045/no-alt-text - Images should have alternate text (alt text)",
"type": "boolean",
"default": true
},
"no-alt-text": {
"description": "MD045/no-alt-text - Images should have ALT Text attribute",
"description": "MD045/no-alt-text - Images should have alternate text (alt text)",
"type": "boolean",
"default": true
},
@ -1071,13 +1071,13 @@
"type": "boolean",
"default": true
},
"images": {
"description": "images - MD045",
"accessibility": {
"description": "accessibility - MD045",
"type": "boolean",
"default": true
},
"accessibility": {
"description": "accessibility - MD045",
"images": {
"description": "images - MD045",
"type": "boolean",
"default": true
}

View file

@ -16,10 +16,4 @@ MarkDownLint.
A [normal](link) and an [empty one]() and a [fragment](#one).
An image without alt text ![](image.jpg)
![](image.jpg)
A reference image without alt text ![][reference]
[reference]: image.jpg "title"
An image without alternate text ![](image.jpg)

View file

@ -45,7 +45,7 @@
"errorRange": [25, 13]
},
{
"lineNumber": 25,
"lineNumber": 20,
"ruleName": "MD043",
"ruleAlias": "required-headers",
"ruleDescription": "Required header structure",
@ -84,25 +84,7 @@
"lineNumber": 19,
"ruleName": "MD045",
"ruleAlias": "no-alt-text",
"ruleDescription": "Images should have ALT Text attribute",
"errorDetail": null,
"errorContext": null,
"errorRange": null
},
{
"lineNumber": 21,
"ruleName": "MD045",
"ruleAlias": "no-alt-text",
"ruleDescription": "Images should have ALT Text attribute",
"errorDetail": null,
"errorContext": null,
"errorRange": null
},
{
"lineNumber": 23,
"ruleName": "MD045",
"ruleAlias": "no-alt-text",
"ruleDescription": "Images should have ALT Text attribute",
"ruleDescription": "Images should have alternate text (alt text)",
"errorDetail": null,
"errorContext": null,
"errorRange": null

View file

@ -1,3 +1,26 @@
# This is an image link without any alt text
# Images with and without alternate text
![Alternate text](image.jpg)
![](image.jpg) {MD045}
![Alternate text](image.jpg "Title")
![](image.jpg "Title") {MD045}
Image without alternate text ![](image.jpg) in a sentence. {MD045}
Reference image with alternate text ![Alternate text][notitle]
Reference image without alternate text ![][notitle] {MD045}
Reference image with alternate text and title ![Alternate text][title]
Reference image without alternate text and title ![][title] {MD045}
Link to image with alternate text [![Alternate text](image.jpg)](image.jpg)
Link to image without alternate text [![](image.jpg)](image.jpg) {MD045}
[notitle]: image.jpg
[title]: image.jpg "Title"