Merge pull request #3546 from dpalou/MOBILE-4069
MOBILE-4069 a11y: Remove unneeded aria-labelledbymain
commit
24cfb835b0
|
@ -26,7 +26,7 @@ jobs:
|
|||
env:
|
||||
MOODLE_DOCKER_DB: pgsql
|
||||
MOODLE_DOCKER_BROWSER: chrome
|
||||
MOODLE_DOCKER_PHP_VERSION: 7.4
|
||||
MOODLE_DOCKER_PHP_VERSION: '8.0'
|
||||
MOODLE_BRANCH: ${{ github.event.inputs.moodle_branch || 'master' }}
|
||||
MOODLE_REPOSITORY: ${{ github.event.inputs.moodle_repository || 'https://github.com/moodle/moodle' }}
|
||||
BEHAT_TAGS: ${{ github.event.inputs.behat_tags || '~@performance' }}
|
||||
|
|
|
@ -8,7 +8,7 @@ jobs:
|
|||
env:
|
||||
MOODLE_DOCKER_DB: pgsql
|
||||
MOODLE_DOCKER_BROWSER: chrome
|
||||
MOODLE_DOCKER_PHP_VERSION: 7.4
|
||||
MOODLE_DOCKER_PHP_VERSION: '8.0'
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v3
|
||||
|
|
|
@ -46,10 +46,10 @@
|
|||
<ion-toggle [(ngModel)]="newDiscussion.postToAllGroups" name="postallgroups"></ion-toggle>
|
||||
</ion-item>
|
||||
<ion-item *ngIf="showGroups" class="core-edit-set-group">
|
||||
<ion-label id="addon-mod-forum-groupslabel">{{ 'addon.mod_forum.group' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="newDiscussion.groupId" [disabled]="newDiscussion.postToAllGroups"
|
||||
aria-labelledby="addon-mod-forum-groupslabel" interface="action-sheet" name="groupid"
|
||||
[interfaceOptions]="{header: 'addon.mod_forum.group' | translate}" (ionChange)="calculateGroupName()">
|
||||
<ion-label>{{ 'addon.mod_forum.group' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="newDiscussion.groupId" [disabled]="newDiscussion.postToAllGroups" interface="action-sheet"
|
||||
name="groupid" [interfaceOptions]="{header: 'addon.mod_forum.group' | translate}"
|
||||
(ionChange)="calculateGroupName()">
|
||||
<ion-select-option *ngFor="let group of groups" [value]="group.id">{{ group.name }}</ion-select-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -28,11 +28,11 @@
|
|||
</core-rich-text-editor>
|
||||
</ion-item>
|
||||
<ion-item *ngIf="categories.length > 0">
|
||||
<ion-label position="stacked" id="addon-mod-glossary-categories-label">
|
||||
<ion-label position="stacked">
|
||||
{{ 'addon.mod_glossary.categories' | translate }}
|
||||
</ion-label>
|
||||
<ion-select [(ngModel)]="options.categories" multiple="true" aria-labelledby="addon-mod-glossary-categories-label"
|
||||
interface="action-sheet" [placeholder]="'addon.mod_glossary.categories' | translate" name="categories"
|
||||
<ion-select [(ngModel)]="options.categories" multiple="true" interface="action-sheet"
|
||||
[placeholder]="'addon.mod_glossary.categories' | translate" name="categories"
|
||||
[interfaceOptions]="{header: 'addon.mod_glossary.categories' | translate}">
|
||||
<ion-select-option *ngFor="let category of categories" [value]="category.id">
|
||||
{{ category.name }}
|
||||
|
@ -40,11 +40,10 @@
|
|||
</ion-select>
|
||||
</ion-item>
|
||||
<ion-item>
|
||||
<ion-label position="stacked" id="addon-mod-glossary-aliases-label">
|
||||
<ion-label position="stacked">
|
||||
{{ 'addon.mod_glossary.aliases' | translate }}
|
||||
</ion-label>
|
||||
<ion-textarea [(ngModel)]="options.aliases" rows="1" [core-auto-rows]="options.aliases"
|
||||
aria-labelledby="addon-mod-glossary-aliases-label" name="aliases">
|
||||
<ion-textarea [(ngModel)]="options.aliases" rows="1" [core-auto-rows]="options.aliases" name="aliases">
|
||||
</ion-textarea>
|
||||
</ion-item>
|
||||
<ion-item-divider>
|
||||
|
|
|
@ -138,14 +138,12 @@
|
|||
<ion-item class="ion-text-wrap" *ngFor="let row of question.rows">
|
||||
<ion-label>
|
||||
<p>
|
||||
<core-format-text id="addon-mod_lesson-matching-{{row.id}}" [component]="component"
|
||||
[componentId]="lesson?.coursemodule" [text]="row.text" contextLevel="module"
|
||||
[contextInstanceId]="lesson?.coursemodule" [courseId]="courseId">
|
||||
<core-format-text [component]="component" [componentId]="lesson?.coursemodule" [text]="row.text"
|
||||
contextLevel="module" [contextInstanceId]="lesson?.coursemodule" [courseId]="courseId">
|
||||
</core-format-text>
|
||||
</p>
|
||||
</ion-label>
|
||||
<ion-select [id]="row.id" [formControlName]="row.name" interface="action-sheet"
|
||||
[attr.aria-labelledby]="'addon-mod_lesson-matching-' + row.id">
|
||||
<ion-select [id]="row.id" [formControlName]="row.name" interface="action-sheet">
|
||||
<ion-select-option *ngFor="let option of row.options" [value]="option.value">
|
||||
{{option.label}}
|
||||
</ion-select-option>
|
||||
|
|
|
@ -27,9 +27,8 @@
|
|||
|
||||
<!-- Retake selector if there is more than one retake. -->
|
||||
<ion-item class="ion-text-wrap" *ngIf="student.attempts && student.attempts.length > 1">
|
||||
<ion-label id="addon-mod_lesson-retakeslabel">{{ 'addon.mod_lesson.attemptheader' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="selectedRetake" (ionChange)="changeRetake(selectedRetake!)"
|
||||
aria-labelledby="addon-mod_lesson-retakeslabel" interface="action-sheet"
|
||||
<ion-label>{{ 'addon.mod_lesson.attemptheader' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="selectedRetake" (ionChange)="changeRetake(selectedRetake!)" interface="action-sheet"
|
||||
[interfaceOptions]="{header: 'addon.mod_lesson.attemptheader' | translate}">
|
||||
<ion-select-option *ngFor="let retake of student.attempts" [value]="retake.try">
|
||||
{{retake.label}}
|
||||
|
|
|
@ -102,13 +102,12 @@
|
|||
</ion-row>
|
||||
|
||||
<ion-item *ngIf="question.type === 0" class="ion-text-wrap" [class.even]="isEven">
|
||||
<ion-label position="floating" id="addon-mod_survey-{{question.name}}">
|
||||
<ion-label position="floating">
|
||||
<span [core-mark-required]="question.required">
|
||||
<strong>{{question.num}}.</strong> {{ question.text }}
|
||||
</span>
|
||||
</ion-label>
|
||||
<ion-textarea [(ngModel)]="answers[question.name]" [name]="question.name"
|
||||
[attr.aria-labelledby]="'addon-mod_survey-'+question.name" [required]="question.required">
|
||||
<ion-textarea [(ngModel)]="answers[question.name]" [name]="question.name" [required]="question.required">
|
||||
</ion-textarea>
|
||||
</ion-item>
|
||||
</ng-container>
|
||||
|
|
|
@ -7,12 +7,11 @@
|
|||
</ion-card>
|
||||
|
||||
<ion-item class="ion-text-wrap core-group-selector">
|
||||
<ion-label id="core-groups-selector-groupslabel-{{id}}">
|
||||
<ion-label>
|
||||
<ng-container *ngIf="groupInfo.separateGroups">{{'core.groupsseparate' | translate }}</ng-container>
|
||||
<ng-container *ngIf="groupInfo.visibleGroups">{{'core.groupsvisible' | translate }}</ng-container>
|
||||
</ion-label>
|
||||
<ion-select [(ngModel)]="selected" (ionChange)="selectedChange.emit(selected)"
|
||||
[attr.aria-labelledby]="'core-groups-selector-groupslabel-' + id" interface="action-sheet"
|
||||
<ion-select [(ngModel)]="selected" (ionChange)="selectedChange.emit(selected)" interface="action-sheet"
|
||||
[interfaceOptions]="{header: 'core.group' | translate}">
|
||||
<ion-select-option *ngFor="let groupOpt of groupInfo.groups" [value]="groupOpt.id">
|
||||
{{groupOpt.name}}
|
||||
|
|
|
@ -12,9 +12,8 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
import { Component, Input, Output, EventEmitter, OnInit, ChangeDetectionStrategy } from '@angular/core';
|
||||
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
|
||||
import { CoreGroupInfo } from '@services/groups';
|
||||
import { CoreUtils } from '@services/utils/utils';
|
||||
|
||||
/**
|
||||
* Component to display a group selector.
|
||||
|
@ -24,20 +23,11 @@ import { CoreUtils } from '@services/utils/utils';
|
|||
templateUrl: 'group-selector.html',
|
||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||
})
|
||||
export class CoreGroupSelectorComponent implements OnInit {
|
||||
export class CoreGroupSelectorComponent {
|
||||
|
||||
@Input() groupInfo?: CoreGroupInfo;
|
||||
@Input() multipleGroupsMessage?: string;
|
||||
@Input() selected!: number;
|
||||
@Output() selectedChange = new EventEmitter<number>();
|
||||
|
||||
id!: number;
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
ngOnInit(): void {
|
||||
this.id = CoreUtils.getUniqueId('CoreGroupSelectorComponent');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -159,9 +159,8 @@
|
|||
</ion-input>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label position="stacked" id="core-login-signup-country">{{ 'core.user.country' | translate }}</ion-label>
|
||||
<ion-select name="country" formControlName="country" aria-labelledby="core-login-signup-country"
|
||||
[placeholder]="'core.login.selectacountry' | translate">
|
||||
<ion-label position="stacked">{{ 'core.user.country' | translate }}</ion-label>
|
||||
<ion-select name="country" formControlName="country" [placeholder]="'core.login.selectacountry' | translate">
|
||||
|
||||
<ion-select-option value="">{{ 'core.login.selectacountry' | translate }}</ion-select-option>
|
||||
<ion-select-option *ngFor="let country of countries" [value]="country.code">{{country.name}}</ion-select-option>
|
||||
|
|
Loading…
Reference in New Issue