mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-06-21 18:08:21 +02:00
add static files
This commit is contained in:
51
static/vendor/select2/tests/a11y/search-tests.js
vendored
Normal file
51
static/vendor/select2/tests/a11y/search-tests.js
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
module('Accessibility - Search');
|
||||
|
||||
var MultipleSelection = require('select2/selection/multiple');
|
||||
var InlineSearch = require('select2/selection/search');
|
||||
|
||||
var $ = require('jquery');
|
||||
|
||||
var Utils = require('select2/utils');
|
||||
var Options = require('select2/options');
|
||||
var options = new Options({});
|
||||
|
||||
test('aria-autocomplete attribute is present', function (assert) {
|
||||
var $select = $('#qunit-fixture .multiple');
|
||||
|
||||
var CustomSelection = Utils.Decorate(MultipleSelection, InlineSearch);
|
||||
var selection = new CustomSelection($select, options);
|
||||
var $selection = selection.render();
|
||||
|
||||
// Update the selection so the search is rendered
|
||||
selection.update([]);
|
||||
|
||||
assert.equal(
|
||||
$selection.find('input').attr('aria-autocomplete'),
|
||||
'list',
|
||||
'The search box is marked as autocomplete'
|
||||
);
|
||||
});
|
||||
|
||||
test('aria-activedescendant should be removed when closed', function (assert) {
|
||||
var $select = $('#qunit-fixture .multiple');
|
||||
|
||||
var CustomSelection = Utils.Decorate(MultipleSelection, InlineSearch);
|
||||
var selection = new CustomSelection($select, options);
|
||||
var $selection = selection.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
selection.bind(container, $('<span></span>'));
|
||||
|
||||
// Update the selection so the search is rendered
|
||||
selection.update([]);
|
||||
|
||||
var $search = $selection.find('input');
|
||||
$search.attr('aria-activedescendant', 'something');
|
||||
|
||||
container.trigger('close');
|
||||
|
||||
assert.ok(
|
||||
!$search.attr('aria-activedescendant'),
|
||||
'There is no active descendant when the dropdown is closed'
|
||||
);
|
||||
});
|
154
static/vendor/select2/tests/a11y/selection-tests.js
vendored
Normal file
154
static/vendor/select2/tests/a11y/selection-tests.js
vendored
Normal file
@ -0,0 +1,154 @@
|
||||
module('Accessibility - All');
|
||||
|
||||
var BaseSelection = require('select2/selection/base');
|
||||
var SingleSelection = require('select2/selection/single');
|
||||
var MultipleSelection = require('select2/selection/multiple');
|
||||
|
||||
var $ = require('jquery');
|
||||
|
||||
var Options = require('select2/options');
|
||||
var options = new Options({});
|
||||
|
||||
test('title is carried over from original element', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
|
||||
var selection = new BaseSelection($select, options);
|
||||
var $selection = selection.render();
|
||||
|
||||
assert.equal(
|
||||
$selection.attr('title'),
|
||||
$select.attr('title'),
|
||||
'The title should have been copied over from the original element'
|
||||
);
|
||||
});
|
||||
|
||||
test('aria-expanded reflects the state of the container', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
|
||||
var selection = new BaseSelection($select, options);
|
||||
var $selection = selection.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
|
||||
selection.bind(container, $('<span></span>'));
|
||||
|
||||
assert.equal(
|
||||
$selection.attr('aria-expanded'),
|
||||
'false',
|
||||
'The container should not be expanded when it is closed'
|
||||
);
|
||||
|
||||
container.trigger('open');
|
||||
|
||||
assert.equal(
|
||||
$selection.attr('aria-expanded'),
|
||||
'true',
|
||||
'The container should be expanded when it is opened'
|
||||
);
|
||||
});
|
||||
|
||||
test('static aria attributes are present', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
|
||||
var selection = new BaseSelection($select, options);
|
||||
var $selection = selection.render();
|
||||
|
||||
assert.equal(
|
||||
$selection.attr('role'),
|
||||
'combobox',
|
||||
'The container should identify as a combobox'
|
||||
);
|
||||
|
||||
assert.equal(
|
||||
$selection.attr('aria-haspopup'),
|
||||
'true',
|
||||
'The dropdown is considered a popup of the container'
|
||||
);
|
||||
});
|
||||
|
||||
test('the container should be in the tab order', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
|
||||
var selection = new BaseSelection($select, options);
|
||||
var $selection = selection.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
selection.bind(container, $('<span></span>'));
|
||||
|
||||
assert.equal(
|
||||
$selection.attr('tabindex'),
|
||||
'0',
|
||||
'The tab index should allow it to fit in the natural tab order'
|
||||
);
|
||||
|
||||
container.trigger('disable');
|
||||
|
||||
assert.equal(
|
||||
$selection.attr('tabindex'),
|
||||
'-1',
|
||||
'The selection should be dropped out of the tab order when disabled'
|
||||
);
|
||||
|
||||
container.trigger('enable');
|
||||
|
||||
assert.equal(
|
||||
$selection.attr('tabindex'),
|
||||
'0',
|
||||
'The tab index should be restored when re-enabled'
|
||||
);
|
||||
});
|
||||
|
||||
test('a custom tabindex is copied', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
$select.attr('tabindex', '999');
|
||||
|
||||
var selection = new BaseSelection($select, options);
|
||||
var $selection = selection.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
selection.bind(container, $('<span></span>'));
|
||||
|
||||
assert.equal(
|
||||
$selection.attr('tabindex'),
|
||||
'999',
|
||||
'The tab index should match the original tab index'
|
||||
);
|
||||
|
||||
container.trigger('disable');
|
||||
|
||||
assert.equal(
|
||||
$selection.attr('tabindex'),
|
||||
'-1',
|
||||
'The selection should be dropped out of the tab order when disabled'
|
||||
);
|
||||
|
||||
container.trigger('enable');
|
||||
|
||||
assert.equal(
|
||||
$selection.attr('tabindex'),
|
||||
'999',
|
||||
'The tab index should be restored when re-enabled'
|
||||
);
|
||||
});
|
||||
|
||||
module('Accessibility - Single');
|
||||
|
||||
test('aria-labelledby should match the rendered container', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
|
||||
var selection = new SingleSelection($select, options);
|
||||
var $selection = selection.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
selection.bind(container, $('<span></span>'));
|
||||
|
||||
var $rendered = $selection.find('.select2-selection__rendered');
|
||||
|
||||
assert.equal(
|
||||
$selection.attr('aria-labelledby'),
|
||||
$rendered.attr('id'),
|
||||
'The rendered selection should label the container'
|
||||
);
|
||||
});
|
||||
|
||||
module('Accessibility - Multiple');
|
Reference in New Issue
Block a user