select

Better select widgets in vanilla javascript.  https://p.ce9e.org/select/demo/
git clone https://git.ce9e.org/select.git

commit
f47eb5c5f7de650bf413dee3779e5757250df690
parent
7091929b6d403660c1d8be4f679b7d56c3a2e1e5
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2023-08-09 06:16
fix: set aria-labelledby

Diffstat

M select.js 8 +++++++-
M tags.js 5 +++++

2 files changed, 12 insertions, 1 deletions


diff --git a/select.js b/select.js

@@ -34,7 +34,13 @@ export class Select {
   34    34 
   35    35 		this.input.className = this.original.dataset.selectInputClass || '';
   36    36 		this.input.disabled = this.original.disabled;
   37    -1 		// this.dropdown.setAttribute('aria-labelledby', 'TODO');
   -1    37 
   -1    38 		var labels = Array.from(this.original.labels).map(label => {
   -1    39 			label.id = label.id || randomString(8);
   -1    40 			return label.id;
   -1    41 		}).join(' ');
   -1    42 		this.input.setAttribute('aria-labelledby', labels);
   -1    43 		this.dropdown.setAttribute('aria-labelledby', labels);
   38    44 
   39    45 		this.input.onkeydown = this.onkeydown.bind(this);
   40    46 		this.input.oninput = this.oninput.bind(this);

diff --git a/tags.js b/tags.js

@@ -19,6 +19,11 @@ export class TagInput {
   19    19 
   20    20 		this.input = document.createElement('input');
   21    21 		this.input.className = this.original.dataset.tagsInputClass || '';
   -1    22 		var labels = Array.from(this.original.labels).map(label => {
   -1    23 			label.id = label.id || randomString(8);
   -1    24 			return label.id;
   -1    25 		}).join(' ');
   -1    26 		this.input.setAttribute('aria-labelledby', labels);
   22    27 		this.wrapper.append(this.input);
   23    28 
   24    29 		this.values = new Values(this.input, this.original.dataset.tagsValueClass);