Merge pull request #324 from htacg/fix_img_alt

- Addresses #320
This commit is contained in:
Jim Derry 2015-11-27 09:46:17 +08:00
commit 3a3836618b
3 changed files with 30 additions and 22 deletions

View file

@ -68,6 +68,7 @@ static struct _msgfmt
/* attribute name */ /* attribute name */
{ INSERTING_ATTRIBUTE, "%s inserting \"%s\" attribute" }, /* Warning in CheckLINK, Error otherwise */ { INSERTING_ATTRIBUTE, "%s inserting \"%s\" attribute" }, /* Warning in CheckLINK, Error otherwise */
{ INSERTING_AUTO_ATTRIBUTE, "%s inserting \"%s\" attribute using value \"%s\"" }, /* Warning */
{ MISSING_ATTR_VALUE, "%s attribute \"%s\" lacks value" }, /* Warning in CheckUrl, Error otherwise */ { MISSING_ATTR_VALUE, "%s attribute \"%s\" lacks value" }, /* Warning in CheckUrl, Error otherwise */
{ UNKNOWN_ATTRIBUTE, "%s unknown attribute \"%s\"" }, /* Error */ { UNKNOWN_ATTRIBUTE, "%s unknown attribute \"%s\"" }, /* Error */
{ PROPRIETARY_ATTRIBUTE, "%s proprietary attribute \"%s\"" }, /* Error */ { PROPRIETARY_ATTRIBUTE, "%s proprietary attribute \"%s\"" }, /* Error */
@ -400,9 +401,11 @@ static const TidyOptionDoc option_docs[] =
}, },
{TidyAltText, {TidyAltText,
"This option specifies the default <code>alt=</code> text Tidy uses for " "This option specifies the default <code>alt=</code> text Tidy uses for "
"<code>&lt;img&gt;</code> attributes. " "<code>&lt;img&gt;</code> attributes when the <code>alt=</code> attribute "
"is missing. "
"<br/>" "<br/>"
"Use with care, as this feature suppresses further accessibility warnings. " "Use with care, as it is your responsibility to make your documents accessible "
"to people who cannot see the images. "
}, },
{TidyXmlPIs, {TidyXmlPIs,
"This option specifies if Tidy should change the parsing of processing " "This option specifies if Tidy should change the parsing of processing "
@ -1549,6 +1552,7 @@ void TY_(ReportAttrError)(TidyDocImpl* doc, Node *node, AttVal *av, uint code)
case BAD_ATTRIBUTE_VALUE: case BAD_ATTRIBUTE_VALUE:
case BAD_ATTRIBUTE_VALUE_REPLACED: case BAD_ATTRIBUTE_VALUE_REPLACED:
case INVALID_ATTRIBUTE: case INVALID_ATTRIBUTE:
case INSERTING_AUTO_ATTRIBUTE:
messageNode(doc, TidyWarning, node, fmt, tagdesc, name, value); messageNode(doc, TidyWarning, node, fmt, tagdesc, name, value);
break; break;

View file

@ -120,25 +120,26 @@ void TY_(ReportFatal)(TidyDocImpl* doc, Node* element, Node* node, uint code);
#define UNKNOWN_ATTRIBUTE 48 #define UNKNOWN_ATTRIBUTE 48
#define INSERTING_ATTRIBUTE 49 #define INSERTING_ATTRIBUTE 49
#define MISSING_ATTR_VALUE 50 #define INSERTING_AUTO_ATTRIBUTE 50
#define BAD_ATTRIBUTE_VALUE 51 #define MISSING_ATTR_VALUE 51
#define UNEXPECTED_GT 52 #define BAD_ATTRIBUTE_VALUE 52
#define PROPRIETARY_ATTRIBUTE 53 #define UNEXPECTED_GT 53
#define PROPRIETARY_ATTR_VALUE 54 #define PROPRIETARY_ATTRIBUTE 54
#define REPEATED_ATTRIBUTE 55 #define PROPRIETARY_ATTR_VALUE 55
#define MISSING_IMAGEMAP 56 #define REPEATED_ATTRIBUTE 56
#define XML_ATTRIBUTE_VALUE 57 #define MISSING_IMAGEMAP 57
#define UNEXPECTED_QUOTEMARK 58 #define XML_ATTRIBUTE_VALUE 58
#define MISSING_QUOTEMARK 59 #define UNEXPECTED_QUOTEMARK 59
#define ID_NAME_MISMATCH 60 #define MISSING_QUOTEMARK 60
#define ID_NAME_MISMATCH 61
#define BACKSLASH_IN_URI 61 #define BACKSLASH_IN_URI 62
#define FIXED_BACKSLASH 62 #define FIXED_BACKSLASH 63
#define ILLEGAL_URI_REFERENCE 63 #define ILLEGAL_URI_REFERENCE 64
#define ESCAPED_ILLEGAL_URI 64 #define ESCAPED_ILLEGAL_URI 65
#define NEWLINE_IN_URI 65 #define NEWLINE_IN_URI 66
#define ANCHOR_NOT_UNIQUE 66 #define ANCHOR_NOT_UNIQUE 67
#define JOINING_ATTRIBUTE 68 #define JOINING_ATTRIBUTE 68
#define UNEXPECTED_EQUALSIGN 69 #define UNEXPECTED_EQUALSIGN 69

View file

@ -852,14 +852,17 @@ void CheckIMG( TidyDocImpl* doc, Node *node )
if ( !HasAlt ) if ( !HasAlt )
{ {
if ( cfg(doc, TidyAccessibilityCheckLevel) == 0 ) ctmbstr alttext = cfgStr(doc, TidyAltText);
if ( ( cfg(doc, TidyAccessibilityCheckLevel) == 0 ) && ( !alttext ) )
{ {
doc->badAccess |= BA_MISSING_IMAGE_ALT; doc->badAccess |= BA_MISSING_IMAGE_ALT;
TY_(ReportMissingAttr)( doc, node, "alt" ); TY_(ReportMissingAttr)( doc, node, "alt" );
} }
if ( cfgStr(doc, TidyAltText) ) if ( alttext ) {
TY_(AddAttribute)( doc, node, "alt", cfgStr(doc, TidyAltText) ); AttVal *attval = TY_(AddAttribute)( doc, node, "alt", alttext );
TY_(ReportAttrError)( doc, node, attval, INSERTING_AUTO_ATTRIBUTE);
}
} }
if ( !HasSrc && !HasDataFld ) if ( !HasSrc && !HasDataFld )