summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/fields
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js/fields')
-rw-r--r--addons/web/static/src/js/fields/abstract_field.js2
-rw-r--r--addons/web/static/src/js/fields/basic_fields.js22
-rw-r--r--addons/web/static/src/js/fields/relational_fields.js2
3 files changed, 19 insertions, 7 deletions
diff --git a/addons/web/static/src/js/fields/abstract_field.js b/addons/web/static/src/js/fields/abstract_field.js
index 9bb61475b83..eab0093ed50 100644
--- a/addons/web/static/src/js/fields/abstract_field.js
+++ b/addons/web/static/src/js/fields/abstract_field.js
@@ -310,6 +310,7 @@ var AbstractField = Widget.extend({
*/
removeInvalidClass: function () {
this.$el.removeClass('o_field_invalid');
+ this.$el.removeAttr('aria-invalid');
},
/**
@@ -317,6 +318,7 @@ var AbstractField = Widget.extend({
*/
setInvalidClass: function () {
this.$el.addClass('o_field_invalid');
+ this.$el.attr('aria-invalid', 'true');
},
/**
diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js
index 43b4e349a66..0cf9271de9d 100644
--- a/addons/web/static/src/js/fields/basic_fields.js
+++ b/addons/web/static/src/js/fields/basic_fields.js
@@ -397,9 +397,10 @@ var LinkButton = AbstractField.extend({
if (this.value) {
var className = this.attrs.icon || 'fa-globe';
- this.$el.html("<span />");
+ this.$el.html("<span role='img'/>");
this.$el.addClass("fa "+ className);
this.$el.attr('title', this.value);
+ this.$el.attr('aria-label', this.value);
}
},
@@ -1460,6 +1461,7 @@ var PriorityWidget = AbstractField.extend({
_renderStar: function (tag, isFull, index, tip) {
return $(tag)
.attr('title', tip)
+ .attr('aria-label', tip)
.attr('data-index', index)
.addClass('o_priority_star fa')
.toggleClass('fa-star', isFull)
@@ -1529,7 +1531,8 @@ var AttachmentImage = AbstractField.extend({
if (this.value) {
this.$el.empty().append($('<img>/', {
src: "/web/image/" + this.value.data.id + "?unique=1",
- title: this.value.data.display_name
+ title: this.value.data.display_name,
+ alt: _("Image")
}));
}
}
@@ -1598,7 +1601,9 @@ var StateSelectionWidget = AbstractField.extend({
this.$('.o_status')
.removeClass('o_status_red o_status_green')
.addClass(currentState.state_class)
- .prop('special_click', true);
+ .prop('special_click', true)
+ .parent().attr('title', currentState.state_name)
+ .attr('aria-label', currentState.state_name);
// Render "FormSelection.Items" and move it into "FormSelection"
var $items = $(qweb.render('FormSelection.items', {
@@ -1662,8 +1667,9 @@ var FavoriteWidget = AbstractField.extend({
* @private
*/
_render: function () {
- var template = this.attrs.nolabel ? '<a href="#"><i class="fa %s" title="%s"></i></a>' : '<a href="#"><i class="fa %s"></i> %s</a>';
- this.$el.empty().append(_.str.sprintf(template, this.value ? 'fa-star' : 'fa-star-o', this.value ? _t('Remove from Favorites') : _t('Add to Favorites')));
+ var tip = this.value ? _t('Remove from Favorites') : _t('Add to Favorites');
+ var template = this.attrs.nolabel ? '<a href="#"><i class="fa %s" title="%s" aria-label="%s" role="img"></i></a>' : '<a href="#"><i class="fa %s" role="img" aria-label="%s"> %s</i></a>';
+ this.$el.empty().append(_.str.sprintf(template, this.value ? 'fa-star' : 'fa-star-o', tip, tip));
},
//--------------------------------------------------------------------------
@@ -2043,7 +2049,10 @@ var FieldProgressBar = AbstractField.extend({
widthComplete = 100;
}
- this.$('.o_progress').toggleClass('o_progress_overflow', value > max_value);
+ this.$('.o_progress').toggleClass('o_progress_overflow', value > max_value)
+ .attr('aria-valuemin', '0')
+ .attr('aria-valuemax', max_value)
+ .attr('aria-valuenow', value);
this.$('.o_progressbar_complete').css('width', widthComplete + '%');
if (!this.write_mode) {
@@ -2100,6 +2109,7 @@ var FieldToggleBoolean = AbstractField.extend({
.toggleClass('text-muted', !this.value);
var title = this.value ? this.attrs.options.active : this.attrs.options.inactive;
this.$el.attr('title', title);
+ this.$el.attr('aria-pressed', this.value);
},
//--------------------------------------------------------------------------
diff --git a/addons/web/static/src/js/fields/relational_fields.js b/addons/web/static/src/js/fields/relational_fields.js
index c86411b6cd9..83ce59f1eb6 100644
--- a/addons/web/static/src/js/fields/relational_fields.js
+++ b/addons/web/static/src/js/fields/relational_fields.js
@@ -1867,7 +1867,7 @@ var FormFieldMany2ManyTags = FieldMany2ManyTags.extend({
var $target = $(ev.currentTarget);
var color = $target.data('color');
var id = $target.data('id');
- var tag = this.$("span.badge[data-id='" + id + "']");
+ var tag = this.$("button.badge[data-id='" + id + "']");
var currentColor = tag.data('color');
var changes = {};