diff --git a/course/format/renderer.php b/course/format/renderer.php
index d390202aa3a..5e54308df8c 100644
--- a/course/format/renderer.php
+++ b/course/format/renderer.php
@@ -168,7 +168,8 @@ abstract class format_section_renderer_base extends plugin_renderer_base {
if ($PAGE->user_is_editing() && has_capability('moodle/course:update', $context)) {
$url = new moodle_url('/course/editsection.php', array('id'=>$section->id, 'sr'=>$sectionreturn));
$o.= html_writer::link($url,
- html_writer::empty_tag('img', array('src' => $this->output->pix_url('t/edit'), 'class' => 'iconsmall edit')),
+ html_writer::empty_tag('img', array('src' => $this->output->pix_url('t/edit'),
+ 'class' => 'iconsmall edit', 'alt' => get_string('editsummary'))),
array('title' => get_string('editsummary')));
}
$o.= html_writer::end_tag('div');
diff --git a/course/lib.php b/course/lib.php
index f8288e1cabd..d1c0f1c18d1 100644
--- a/course/lib.php
+++ b/course/lib.php
@@ -1576,8 +1576,7 @@ function print_section($course, $section, $mods, $modnamesused, $absolute=false,
// Display link itself
echo 'extra . $onclick .
' href="' . $url . '">
' .
+ '" class="activityicon" alt="" /> ' .
$accesstext . '' .
$instancename . $altname . '';
@@ -1612,9 +1611,7 @@ function print_section($course, $section, $mods, $modnamesused, $absolute=false,
// Display greyed-out text of link
echo '
extra .
' >' . '
'. $instancename . $altname .
+ '" class="activityicon" alt="" /> '. $instancename . $altname .
' ';
// Do not display content after link when it is greyed out like this.
@@ -3206,7 +3203,7 @@ function make_editing_buttons(stdClass $mod, $absolute_ignored = true, $movesele
if ($mod->modname !== 'label' && $hasmanageactivities && course_ajax_enabled($COURSE)) {
$actions[] = new action_link(
new moodle_url($baseurl, array('update' => $mod->id)),
- new pix_icon('t/editstring', $str->edittitle, 'moodle', array('class' => 'iconsmall visibleifjs')),
+ new pix_icon('t/editstring', $str->edittitle, 'moodle', array('class' => 'iconsmall visibleifjs', 'title' => '')),
null,
array('class' => 'editing_title', 'title' => $str->edittitle)
);
@@ -3225,7 +3222,7 @@ function make_editing_buttons(stdClass $mod, $absolute_ignored = true, $movesele
if ($indent > 0) {
$actions[] = new action_link(
new moodle_url($baseurl, array('id' => $mod->id, 'indent' => '-1')),
- new pix_icon($leftarrow, $str->moveleft, 'moodle', array('class' => 'iconsmall')),
+ new pix_icon($leftarrow, $str->moveleft, 'moodle', array('class' => 'iconsmall', 'title' => '')),
null,
array('class' => 'editing_moveleft', 'title' => $str->moveleft)
);
@@ -3233,7 +3230,7 @@ function make_editing_buttons(stdClass $mod, $absolute_ignored = true, $movesele
if ($indent >= 0) {
$actions[] = new action_link(
new moodle_url($baseurl, array('id' => $mod->id, 'indent' => '1')),
- new pix_icon($rightarrow, $str->moveright, 'moodle', array('class' => 'iconsmall')),
+ new pix_icon($rightarrow, $str->moveright, 'moodle', array('class' => 'iconsmall', 'title' => '')),
null,
array('class' => 'editing_moveright', 'title' => $str->moveright)
);
@@ -3245,20 +3242,20 @@ function make_editing_buttons(stdClass $mod, $absolute_ignored = true, $movesele
if ($moveselect) {
$actions[] = new action_link(
new moodle_url($baseurl, array('copy' => $mod->id)),
- new pix_icon('t/move', $str->move, 'moodle', array('class' => 'iconsmall')),
+ new pix_icon('t/move', $str->move, 'moodle', array('class' => 'iconsmall', 'title' => '')),
null,
array('class' => 'editing_move', 'title' => $str->move)
);
} else {
$actions[] = new action_link(
new moodle_url($baseurl, array('id' => $mod->id, 'move' => '-1')),
- new pix_icon('t/up', $str->moveup, 'moodle', array('class' => 'iconsmall')),
+ new pix_icon('t/up', $str->moveup, 'moodle', array('class' => 'iconsmall', 'title' => '')),
null,
array('class' => 'editing_moveup', 'title' => $str->moveup)
);
$actions[] = new action_link(
new moodle_url($baseurl, array('id' => $mod->id, 'move' => '1')),
- new pix_icon('t/down', $str->movedown, 'moodle', array('class' => 'iconsmall')),
+ new pix_icon('t/down', $str->movedown, 'moodle', array('class' => 'iconsmall', 'title' => '')),
null,
array('class' => 'editing_movedown', 'title' => $str->movedown)
);
@@ -3269,7 +3266,7 @@ function make_editing_buttons(stdClass $mod, $absolute_ignored = true, $movesele
if ($hasmanageactivities) {
$actions[] = new action_link(
new moodle_url($baseurl, array('update' => $mod->id)),
- new pix_icon('t/edit', $str->update, 'moodle', array('class' => 'iconsmall')),
+ new pix_icon('t/edit', $str->update, 'moodle', array('class' => 'iconsmall', 'title' => '')),
null,
array('class' => 'editing_update', 'title' => $str->update)
);
@@ -3279,7 +3276,7 @@ function make_editing_buttons(stdClass $mod, $absolute_ignored = true, $movesele
if (has_all_capabilities($dupecaps, $coursecontext) && plugin_supports('mod', $mod->modname, FEATURE_BACKUP_MOODLE2)) {
$actions[] = new action_link(
new moodle_url($baseurl, array('duplicate' => $mod->id)),
- new pix_icon('t/copy', $str->duplicate, 'moodle', array('class' => 'iconsmall')),
+ new pix_icon('t/copy', $str->duplicate, 'moodle', array('class' => 'iconsmall', 'title' => '')),
null,
array('class' => 'editing_duplicate', 'title' => $str->duplicate)
);
@@ -3289,7 +3286,7 @@ function make_editing_buttons(stdClass $mod, $absolute_ignored = true, $movesele
if ($hasmanageactivities) {
$actions[] = new action_link(
new moodle_url($baseurl, array('delete' => $mod->id)),
- new pix_icon('t/delete', $str->delete, 'moodle', array('class' => 'iconsmall')),
+ new pix_icon('t/delete', $str->delete, 'moodle', array('class' => 'iconsmall', 'title' => '')),
null,
array('class' => 'editing_delete', 'title' => $str->delete)
);
@@ -3300,14 +3297,14 @@ function make_editing_buttons(stdClass $mod, $absolute_ignored = true, $movesele
if ($mod->visible) {
$actions[] = new action_link(
new moodle_url($baseurl, array('hide' => $mod->id)),
- new pix_icon('t/hide', $str->hide, 'moodle', array('class' => 'iconsmall')),
+ new pix_icon('t/hide', $str->hide, 'moodle', array('class' => 'iconsmall', 'title' => '')),
null,
array('class' => 'editing_hide', 'title' => $str->hide)
);
} else {
$actions[] = new action_link(
new moodle_url($baseurl, array('show' => $mod->id)),
- new pix_icon('t/show', $str->show, 'moodle', array('class' => 'iconsmall')),
+ new pix_icon('t/show', $str->show, 'moodle', array('class' => 'iconsmall', 'title' => '')),
null,
array('class' => 'editing_show', 'title' => $str->show)
);
@@ -3338,7 +3335,7 @@ function make_editing_buttons(stdClass $mod, $absolute_ignored = true, $movesele
if ($mod->groupmodelink) {
$actions[] = new action_link(
new moodle_url($baseurl, array('id' => $mod->id, 'groupmode' => $groupmode)),
- new pix_icon($groupimage, $grouptitle, 'moodle', array('class' => 'iconsmall')),
+ new pix_icon($groupimage, $grouptitle, 'moodle', array('class' => 'iconsmall', 'title' => '')),
null,
array('class' => $groupclass, 'title' => $grouptitle)
);
@@ -3351,7 +3348,7 @@ function make_editing_buttons(stdClass $mod, $absolute_ignored = true, $movesele
if (has_capability('moodle/role:assign', $modcontext)){
$actions[] = new action_link(
new moodle_url('/'.$CFG->admin.'/roles/assign.php', array('contextid' => $modcontext->id)),
- new pix_icon('i/roles', $str->assign, 'moodle', array('class' => 'iconsmall')),
+ new pix_icon('i/roles', $str->assign, 'moodle', array('class' => 'iconsmall', 'title' => '')),
null,
array('class' => 'editing_assign', 'title' => $str->assign)
);
diff --git a/course/yui/toolboxes/toolboxes.js b/course/yui/toolboxes/toolboxes.js
index 024785ebf4b..2b923474977 100644
--- a/course/yui/toolboxes/toolboxes.js
+++ b/course/yui/toolboxes/toolboxes.js
@@ -106,7 +106,6 @@ YUI.add('moodle-course-toolboxes', function(Y) {
var newstring = M.util.get_string(status, 'moodle');
hideicon.setAttrs({
'alt' : newstring,
- 'title' : newstring,
'src' : M.util.image_url('t/' + status)
});
button.set('title', newstring);
@@ -446,7 +445,6 @@ YUI.add('moodle-course-toolboxes', function(Y) {
// Change the UI
icon.setAttrs({
'alt' : newtitle,
- 'title' : newtitle,
'src' : iconsrc
});
button.setAttribute('title', newtitle);
@@ -473,7 +471,6 @@ YUI.add('moodle-course-toolboxes', function(Y) {
.addClass(CSS.GENERICICONCLASS)
.setAttrs({
'src' : M.util.image_url('t/left', 'moodle'),
- 'title' : left_string,
'alt' : left_string
});
var moveright = target.one(CSS.MOVERIGHT);
@@ -682,7 +679,6 @@ YUI.add('moodle-course-toolboxes', function(Y) {
var newstring = M.util.get_string(status + 'fromothers', 'format_' + this.get('format'));
hideicon.setAttrs({
'alt' : newstring,
- 'title' : newstring,
'src' : M.util.image_url('i/' + status)
});
button.set('title', newstring);
@@ -740,7 +736,6 @@ YUI.add('moodle-course-toolboxes', function(Y) {
.set('title', old_string);
Y.one(CSS.PAGECONTENT)
.all(M.course.format.get_section_selector(Y) + '.current ' + CSS.HIGHLIGHT + ' img')
- .set('title', old_string)
.set('alt', old_string)
.set('src', M.util.image_url('i/marker'));
@@ -756,7 +751,6 @@ YUI.add('moodle-course-toolboxes', function(Y) {
button
.set('title', new_string);
buttonicon
- .set('title', new_string)
.set('alt', new_string)
.set('src', M.util.image_url('i/marked'));
}
diff --git a/lib/outputcomponents.php b/lib/outputcomponents.php
index 7abde25c951..c10caffb1c4 100644
--- a/lib/outputcomponents.php
+++ b/lib/outputcomponents.php
@@ -550,6 +550,10 @@ class pix_icon implements renderable {
}
if (!isset($this->attributes['title'])) {
$this->attributes['title'] = $this->attributes['alt'];
+ } else if (empty($this->attributes['title'])) {
+ // Remove the title attribute if empty, we probably want to use the parent node's title
+ // and some browsers might overwrite it with an empty title.
+ unset($this->attributes['title']);
}
}
}
diff --git a/lib/yui/dragdrop/dragdrop.js b/lib/yui/dragdrop/dragdrop.js
index db4c73aaad5..98e2be6c236 100644
--- a/lib/yui/dragdrop/dragdrop.js
+++ b/lib/yui/dragdrop/dragdrop.js
@@ -36,8 +36,7 @@ YUI.add('moodle-core-dragdrop', function(Y) {
.setStyle('cursor', 'move')
.setAttrs({
'src' : M.util.image_url(MOVEICON.pix, MOVEICON.component),
- 'alt' : title,
- 'title' : M.str.moodle.move
+ 'alt' : title
});
if (iconclass) {
dragicon.addClass(iconclass);