Skip to content

Commit f43a5e5

Browse files
committed
Fix a11y issues
1 parent 2e6a2f8 commit f43a5e5

14 files changed

Lines changed: 48 additions & 17 deletions

File tree

Component/Form/FormRepository.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@
1616
use Loki\AdminComponents\ProviderHandler\ProviderHandlerListing;
1717
use Loki\Components\Component\ComponentRepository;
1818

19+
/**
20+
* @method FormViewModel getViewModel()
21+
* @method FormContext getContext()
22+
*/
1923
class FormRepository extends ComponentRepository
2024
{
2125
public function __construct(

Component/Form/FormViewModel.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
/**
2121
* @method FormRepository getRepository()
22+
* @method FormContext getContext()
2223
*/
2324
class FormViewModel extends ComponentViewModel
2425
{

Form/Field/Field.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@ public function getLabel(): string
2323
return (string)$this->getData('label');
2424
}
2525

26+
public function getDomId(): string
27+
{
28+
$domId = strtolower($this->getScope().'-'.$this->getCode());
29+
return preg_replace('/([^a-z0-9\-]+)/', '-', $domId);
30+
}
31+
2632
public function getCode(): string
2733
{
2834
return (string)$this->getData('code');

view/adminhtml/templates/form/actions.phtml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ $mainSaveAction = false;
2222
$otherSaveActions = (array)$block->getOtherSaveActions(); // @todo: Test whether this is working
2323
?>
2424
<div class="page-main-actions">
25-
<div class="page-actions-placeholder"></div>
26-
2725
<div class="page-actions">
2826
<div class="page-actions-inner">
2927
<div class="page-actions-buttons">

view/adminhtml/templates/form/field.phtml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,12 @@ if (!empty($depends)) {
4646
}
4747

4848
$cssClass = implode(' ', $cssClass);
49+
$fieldId = $field->getDomId();
50+
4951
?>
5052
<div class="<?= $escaper->escapeHtml($cssClass) ?>" <?= $escaper->escapeHtml($dependStatement) ?>>
5153
<div class="admin__field-label">
52-
<label for="<?= $escaper->escapeHtml($field->getCode()) ?>">
54+
<label for="<?= $escaper->escapeHtml($fieldId) ?>">
5355
<span><?= $escaper->escapeHtml($field->getLabel()) ?></span>
5456
<?php if ($field->isRequired()): ?>
5557
<span style="display: inline; color:red">*</span>

view/adminhtml/templates/form/field_type/entity_select.phtml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ if (isset($fieldAttributes['type'])) {
3737
$columns = $entitySelect->getColumns();
3838
$currentItem = $entitySelect->getCurrentItem();
3939
$valueCode = $entitySelect->getValueCode();
40-
40+
$fieldId = $field->getDomId();
4141
// @todo: Modal effect with _show does not animate
4242
?>
4343
<div
@@ -49,6 +49,7 @@ $valueCode = $entitySelect->getValueCode();
4949

5050
<div class="input-with-button">
5151
<input
52+
id="<?= $escaper->escapeHtml($fieldId) ?>"
5253
class="admin__control-text"
5354
type="<?= $escaper->escapeHtml($inputType) ?>"
5455
name="<?= $escaper->escapeHtml($field->getCode()) ?>"

view/adminhtml/templates/form/field_type/entity_select/table.phtml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,6 @@ $state = $viewModel->getState();
102102
:checked="isSelected"
103103
@change="toggleSelectedId"
104104
data-row-id="<?= $escaper->escapeHtml($item->getId()) ?>">
105-
<label></label>
106105
</label>
107106
</td>
108107
<?php foreach ($viewModel->getVisibleColumns() as $column): ?>

view/adminhtml/templates/form/field_type/from_to.phtml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,20 @@ $inputType = $field->getInputType();
2121
if (empty($inputType)) {
2222
$inputType = 'text';
2323
}
24+
25+
$fieldId = $field->getDomId();
2426
?>
2527
<div class="">
2628
<div class="admin__form-field">
2729
<label
28-
for="<?= $escaper->escapeHtml($field->getScope()) ?>.<?= $escaper->escapeHtml($field->getCode()) ?>"
30+
for="<?= $escaper->escapeHtml($fieldId) ?>"
2931
class="admin__form-field-label">
3032
<span>from</span>
3133
</label>
3234

3335
<div class="admin__form-field-control">
3436
<input
35-
id="<?= $escaper->escapeHtml($field->getScope()) ?>.<?= $escaper->escapeHtml($field->getCode()) ?>"
37+
id="<?= $escaper->escapeHtml($fieldId) ?>"
3638
class="admin__control-text"
3739
type="<?= $escaper->escapeHtml($inputType) ?>"
3840
data-name="<?= $escaper->escapeHtml($field->getCode()) ?>.from"
@@ -49,12 +51,16 @@ if (empty($inputType)) {
4951
</div>
5052

5153
<div class="admin__form-field">
52-
<label class="admin__form-field-label">
54+
<label
55+
for="<?= $escaper->escapeHtml($fieldId) ?>-to"
56+
class="admin__form-field-label"
57+
>
5358
<span>to</span>
5459
</label>
5560

5661
<div class="admin__form-field-control">
5762
<input
63+
id="<?= $escaper->escapeHtml($fieldId) ?>-to"
5864
class="admin__control-text"
5965
type="<?= $escaper->escapeHtml($inputType) ?>"
6066
data-name="<?= $escaper->escapeHtml($field->getCode()) ?>.to"

view/adminhtml/templates/form/field_type/input.phtml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,11 @@ if (isset($fieldAttributes['type'])) {
2222
$inputType = $fieldAttributes['type'];
2323
unset($fieldAttributes['type']);
2424
}
25+
26+
$fieldId = $field->getDomId();
2527
?>
2628
<input
29+
id="<?= $escaper->escapeHtml($fieldId) ?>"
2730
class="admin__control-text"
2831
type="<?= $escaper->escapeHtml($inputType) ?>"
2932
name="<?= $escaper->escapeHtml($field->getCode()) ?>"

view/adminhtml/templates/form/field_type/select.phtml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@ $emptyOption = $field->getEmptyOption();
2121
$fieldType = $field->getFieldType();
2222
$options = $fieldType->getOptions();
2323
$fieldAttributes = $field->getFieldAttributes();
24+
$fieldId = $field->getDomId();
2425
?>
2526
<select
27+
id="<?= $escaper->escapeHtml($fieldId) ?>"
2628
aria-label="<?= $escaper->escapeHtml($field->getLabel()) ?>"
2729
class="admin__control-select"
2830
name="<?= $escaper->escapeHtml($field->getCode()) ?>"

0 commit comments

Comments
 (0)