diff --git a/admin/tool/brickfield/classes/local/htmlchecker/common/checks/img_alt_is_too_long.php b/admin/tool/brickfield/classes/local/htmlchecker/common/checks/img_alt_is_too_long.php index 7963e14947b..21e2c2ce4b5 100644 --- a/admin/tool/brickfield/classes/local/htmlchecker/common/checks/img_alt_is_too_long.php +++ b/admin/tool/brickfield/classes/local/htmlchecker/common/checks/img_alt_is_too_long.php @@ -30,10 +30,6 @@ use tool_brickfield\local\htmlchecker\common\brickfield_accessibility_test; * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class img_alt_is_too_long extends brickfield_accessibility_test { - - /** @var int The default severity code for this test. */ - public $defaultseverity = \tool_brickfield\local\htmlchecker\brickfield_accessibility::BA_TEST_SEVERE; - /** * The main check function. This is called by the parent class to actually check content. */ @@ -41,7 +37,7 @@ class img_alt_is_too_long extends brickfield_accessibility_test { global $alttextlengthlimit; foreach ($this->get_all_elements('img') as $img) { - $alttextlengthlimit = 125; + $alttextlengthlimit = 750; if ($img->hasAttribute('alt') && core_text::strlen($img->getAttribute('alt')) > $alttextlengthlimit) { $this->add_report($img); } diff --git a/admin/tool/brickfield/lang/en/tool_brickfield.php b/admin/tool/brickfield/lang/en/tool_brickfield.php index ed0e4f27410..972427377b0 100644 --- a/admin/tool/brickfield/lang/en/tool_brickfield.php +++ b/admin/tool/brickfield/lang/en/tool_brickfield.php @@ -179,7 +179,7 @@ $string['checkdesc:headerh3'] = 'Headers following after H3 headers (the editor $string['checkdesc:headershavetext'] = 'A header needs to contain text to be perceivable.'; $string['checkdesc:iisnotused'] = 'Italic (i) elements should not be used; "em" should be used instead.'; $string['checkdesc:imgaltisdifferent'] = 'Image alt (alternative) text should not be the image filename.'; -$string['checkdesc:imgaltistoolong'] = 'Image alt (alternative) text should not be more than the maximum allowed (125) characters.'; +$string['checkdesc:imgaltistoolong'] = 'Ensure that the image alt (alternative) text is concise enough to describe the image.'; $string['checkdesc:imgaltnotemptyinanchor'] = 'Image alt (alternative) text should not be empty, especially when the image has a link going elsewhere.'; $string['checkdesc:imgaltnotplaceholder'] = 'Image alt (alternative) text should not be a simple placeholder text, such as "image".'; $string['checkdesc:imghasalt'] = 'Image alt (alternative) text should not be missing for image elements, unless purely decorative with no meaning.'; diff --git a/admin/tool/brickfield/tests/local/htmlchecker/common/checks/img_alt_is_too_long_test.php b/admin/tool/brickfield/tests/local/htmlchecker/common/checks/img_alt_is_too_long_test.php index c2472cb37f9..74e17d46681 100644 --- a/admin/tool/brickfield/tests/local/htmlchecker/common/checks/img_alt_is_too_long_test.php +++ b/admin/tool/brickfield/tests/local/htmlchecker/common/checks/img_alt_is_too_long_test.php @@ -24,6 +24,8 @@ namespace tool_brickfield\local\htmlchecker\common\checks; +use tool_brickfield\local\htmlchecker\brickfield_accessibility; + defined('MOODLE_INTERNAL') || die(); require_once('all_checks.php'); @@ -64,21 +66,21 @@ EOD; */ public static function img_alt_text_provider(): array { return [ - 'Alt text <= 125 characters' => [ + 'Alt text <= 750 characters' => [ true, - str_repeat("Hello world!", 10), + str_repeat("Hello world!", 60), ], - 'Alt text > 125 characters' => [ + 'Alt text > 750 characters' => [ false, - str_repeat("Hello world!", 25), + str_repeat("Hello world!", 65), ], - 'Multi-byte alt text <= 125 characters' => [ + 'Multi-byte alt text <= 750 characters' => [ true, - str_repeat('こんにちは、世界!', 13), + str_repeat('こんにちは、世界!', 83), ], - 'Multi-byte alt text > 125 characters' => [ + 'Multi-byte alt text > 750 characters' => [ false, - str_repeat('こんにちは、世界!', 30), + str_repeat('こんにちは、世界!', 90), ], ]; } @@ -96,7 +98,18 @@ EOD; if ($expectedpass) { $this->assertEmpty($results); } else { - $this->assertTrue($results[0]->element->tagName === 'img'); + $this->assertEquals('img', $results[0]->element->tagName); } } + + /** + * Test the severity of the {@see img_alt_is_too_long} check. + * + * @return void + */ + public function test_severity(): void { + $html = $this->get_test_html('Some alt text'); + $checker = new brickfield_accessibility($html, 'brickfield', 'string'); + $this->assertEquals(brickfield_accessibility::BA_TEST_SUGGESTION, $checker->get_test_severity(img_alt_is_too_long::class)); + } }