Add alert role to form error messages

pull/6000/head
Chocobozzz 2023-10-06 10:19:20 +02:00
parent 54f16adca8
commit 55d7e361f5
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
39 changed files with 95 additions and 95 deletions

View File

@ -13,7 +13,7 @@
type="text" id="fromName" class="form-control"
formControlName="fromName" [ngClass]="{ 'input-error': formErrors.fromName }"
>
<div *ngIf="formErrors.fromName" class="form-error">{{ formErrors.fromName }}</div>
<div *ngIf="formErrors.fromName" class="form-error" role="alert">{{ formErrors.fromName }}</div>
</div>
<div class="form-group">
@ -22,7 +22,7 @@
type="text" id="fromEmail" class="form-control"
formControlName="fromEmail" [ngClass]="{ 'input-error': formErrors['fromEmail'] }"
>
<div *ngIf="formErrors.fromEmail" class="form-error">{{ formErrors.fromEmail }}</div>
<div *ngIf="formErrors.fromEmail" class="form-error" role="alert">{{ formErrors.fromEmail }}</div>
</div>
<div class="form-group">
@ -31,14 +31,14 @@
type="text" id="subject" class="form-control"
formControlName="subject" [ngClass]="{ 'input-error': formErrors['subject'] }"
>
<div *ngIf="formErrors.subject" class="form-error">{{ formErrors.subject }}</div>
<div *ngIf="formErrors.subject" class="form-error" role="alert">{{ formErrors.subject }}</div>
</div>
<div class="form-group">
<label i18n for="body">Your message</label>
<textarea id="body" formControlName="body" class="form-control" [ngClass]="{ 'input-error': formErrors['body'] }">
</textarea>
<div *ngIf="formErrors.body" class="form-error">{{ formErrors.body }}</div>
<div *ngIf="formErrors.body" class="form-error" role="alert">{{ formErrors.body }}</div>
</div>
<div *ngIf="error" class="alert alert-danger">{{ error }}</div>

View File

@ -22,7 +22,7 @@
<span i18n>{getCacheSize('previews'), plural, =1 {cached image} other {cached images}}</span>
</div>
<div *ngIf="formErrors.cache.previews.size" class="form-error">{{ formErrors.cache.previews.size }}</div>
<div *ngIf="formErrors.cache.previews.size" class="form-error" role="alert">{{ formErrors.cache.previews.size }}</div>
</div>
<div class="form-group" formGroupName="captions">
@ -36,7 +36,7 @@
<span i18n>{getCacheSize('captions'), plural, =1 {cached caption} other {cached captions}}</span>
</div>
<div *ngIf="formErrors.cache.captions.size" class="form-error">{{ formErrors.cache.captions.size }}</div>
<div *ngIf="formErrors.cache.captions.size" class="form-error" role="alert">{{ formErrors.cache.captions.size }}</div>
</div>
<div class="form-group" formGroupName="torrents">
@ -50,7 +50,7 @@
<span i18n>{getCacheSize('torrents'), plural, =1 {cached torrent} other {cached torrents}}</span>
</div>
<div *ngIf="formErrors.cache.torrents.size" class="form-error">{{ formErrors.cache.torrents.size }}</div>
<div *ngIf="formErrors.cache.torrents.size" class="form-error" role="alert">{{ formErrors.cache.torrents.size }}</div>
</div>
<div class="form-group" formGroupName="torrents">
@ -64,7 +64,7 @@
<span i18n>{getCacheSize('storyboards'), plural, =1 {cached storyboard} other {cached storyboards}}</span>
</div>
<div *ngIf="formErrors.cache.storyboards.size" class="form-error">{{ formErrors.cache.storyboards.size }}</div>
<div *ngIf="formErrors.cache.storyboards.size" class="form-error" role="alert">{{ formErrors.cache.storyboards.size }}</div>
</div>
</ng-container>
@ -98,7 +98,7 @@
[ngClass]="{ 'input-error': formErrors['instance.customizations.javascript'] }"
></textarea>
<div *ngIf="formErrors.instance.customizations.javascript" class="form-error">{{ formErrors.instance.customizations.javascript }}</div>
<div *ngIf="formErrors.instance.customizations.javascript" class="form-error" role="alert">{{ formErrors.instance.customizations.javascript }}</div>
</div>
<div class="form-group">
@ -127,7 +127,7 @@ color: red;
id="customizationCSS" formControlName="css" class="form-control" dir="ltr"
[ngClass]="{ 'input-error': formErrors['instance.customizations.css'] }"
></textarea>
<div *ngIf="formErrors.instance.customizations.css" class="form-error">{{ formErrors.instance.customizations.css }}</div>
<div *ngIf="formErrors.instance.customizations.css" class="form-error" role="alert">{{ formErrors.instance.customizations.css }}</div>
</div>
</ng-container>
</ng-container>

View File

@ -34,7 +34,7 @@
[clearable]="false"
></my-select-custom-value>
<div *ngIf="formErrors.instance.defaultClientRoute" class="form-error">{{ formErrors.instance.defaultClientRoute }}</div>
<div *ngIf="formErrors.instance.defaultClientRoute" class="form-error" role="alert">{{ formErrors.instance.defaultClientRoute }}</div>
</div>
<div class="form-group" formGroupName="trending">
@ -51,7 +51,7 @@
</select>
</div>
<div *ngIf="formErrors.trending.videos.algorithms.default" class="form-error">{{ formErrors.trending.videos.algorithms.default }}</div>
<div *ngIf="formErrors.trending.videos.algorithms.default" class="form-error" role="alert">{{ formErrors.trending.videos.algorithms.default }}</div>
</ng-container>
</ng-container>
</div>
@ -126,7 +126,7 @@
</select>
</div>
<div *ngIf="formErrors.broadcastMessage.level" class="form-error">{{ formErrors.broadcastMessage.level }}</div>
<div *ngIf="formErrors.broadcastMessage.level" class="form-error" role="alert">{{ formErrors.broadcastMessage.level }}</div>
</div>
<div class="form-group">
@ -137,7 +137,7 @@
[formError]="formErrors['broadcastMessage.message']" markdownType="to-unsafe-html"
></my-markdown-textarea>
<div *ngIf="formErrors.broadcastMessage.message" class="form-error">{{ formErrors.broadcastMessage.message }}</div>
<div *ngIf="formErrors.broadcastMessage.message" class="form-error" role="alert">{{ formErrors.broadcastMessage.message }}</div>
</div>
</ng-container>
@ -193,7 +193,7 @@
<span i18n>{form.value['signup']['limit'], plural, =1 {user} other {users}}</span>
</div>
<div *ngIf="formErrors.signup.limit" class="form-error">{{ formErrors.signup.limit }}</div>
<div *ngIf="formErrors.signup.limit" class="form-error" role="alert">{{ formErrors.signup.limit }}</div>
<small i18n *ngIf="hasUnlimitedSignup()" class="muted small">Signup won't be limited to a fixed number of users.</small>
</div>
@ -209,7 +209,7 @@
<span i18n>{form.value['signup']['minimumAge'], plural, =1 {year old} other {years old}}</span>
</div>
<div *ngIf="formErrors.signup.minimumAge" class="form-error">{{ formErrors.signup.minimumAge }}</div>
<div *ngIf="formErrors.signup.minimumAge" class="form-error" role="alert">{{ formErrors.signup.minimumAge }}</div>
</div>
</ng-container>
</my-peertube-checkbox>
@ -230,7 +230,7 @@
<my-user-real-quota-info [videoQuota]="getUserVideoQuota()"></my-user-real-quota-info>
<div *ngIf="formErrors.user.videoQuota" class="form-error">{{ formErrors.user.videoQuota }}</div>
<div *ngIf="formErrors.user.videoQuota" class="form-error" role="alert">{{ formErrors.user.videoQuota }}</div>
</div>
<div class="form-group">
@ -244,7 +244,7 @@
[clearable]="false"
></my-select-custom-value>
<div *ngIf="formErrors.user.videoQuotaDaily" class="form-error">{{ formErrors.user.videoQuotaDaily }}</div>
<div *ngIf="formErrors.user.videoQuotaDaily" class="form-error" role="alert">{{ formErrors.user.videoQuotaDaily }}</div>
</div>
<div class="form-group">
<ng-container formGroupName="history">
@ -282,7 +282,7 @@
<span i18n>jobs in parallel</span>
</div>
<div *ngIf="formErrors.import.concurrency" class="form-error">{{ formErrors.import.concurrency }}</div>
<div *ngIf="formErrors.import.concurrency" class="form-error" role="alert">{{ formErrors.import.concurrency }}</div>
</div>
<div class="form-group" formGroupName="http">
@ -377,7 +377,7 @@
<span i18n>{form.value['videoChannels']['maxPerUser'], plural, =1 {channel} other {channels}}</span>
</div>
<div *ngIf="formErrors.videoChannels.maxPerUser" class="form-error">{{ formErrors.videoChannels.maxPerUser }}</div>
<div *ngIf="formErrors.videoChannels.maxPerUser" class="form-error" role="alert">{{ formErrors.videoChannels.maxPerUser }}</div>
</div>
</div>
</div>
@ -439,7 +439,7 @@
formControlName="url" [ngClass]="{ 'input-error': formErrors['search.searchIndex.url'] }"
>
<div *ngIf="formErrors.search.searchIndex.url" class="form-error">{{ formErrors.search.searchIndex.url }}</div>
<div *ngIf="formErrors.search.searchIndex.url" class="form-error" role="alert">{{ formErrors.search.searchIndex.url }}</div>
</div>
<div class="mt-3">
@ -537,7 +537,7 @@
type="text" id="followingsInstanceAutoFollowIndexUrl" class="form-control"
formControlName="indexUrl" [ngClass]="{ 'input-error': formErrors['followings.instance.autoFollowIndex.indexUrl'] }"
>
<div *ngIf="formErrors.followings.instance.autoFollowIndex.indexUrl" class="form-error">{{ formErrors.followings.instance.autoFollowIndex.indexUrl }}</div>
<div *ngIf="formErrors.followings.instance.autoFollowIndex.indexUrl" class="form-error" role="alert">{{ formErrors.followings.instance.autoFollowIndex.indexUrl }}</div>
</div>
</ng-container>
</my-peertube-checkbox>
@ -565,7 +565,7 @@
formControlName="email" [ngClass]="{ 'input-error': formErrors['admin.email'] }"
>
<div *ngIf="formErrors.admin.email" class="form-error">{{ formErrors.admin.email }}</div>
<div *ngIf="formErrors.admin.email" class="form-error" role="alert">{{ formErrors.admin.email }}</div>
</div>
<div class="form-group" formGroupName="contactForm">
@ -600,7 +600,7 @@
formControlName="username" [ngClass]="{ 'input-error': formErrors['services.twitter.username'] }"
>
<div *ngIf="formErrors.services.twitter.username" class="form-error">{{ formErrors.services.twitter.username }}</div>
<div *ngIf="formErrors.services.twitter.username" class="form-error" role="alert">{{ formErrors.services.twitter.username }}</div>
</div>
<div class="form-group">

View File

@ -68,7 +68,7 @@
<div class="col-md-7 col-xl-5"></div>
<div class="col-md-5 col-xl-5">
<div class="form-error submit-error" i18n *ngIf="!form.valid && isUpdateAllowed()">
<div role="alert" class="form-error submit-error" i18n *ngIf="!form.valid && isUpdateAllowed()">
There are errors in the form:
<ul>
@ -78,7 +78,7 @@
</ul>
</div>
<span class="form-error submit-error" i18n *ngIf="!hasLiveAllowReplayConsistentOptions()">
<span role="alert" class="form-error submit-error" i18n *ngIf="!hasLiveAllowReplayConsistentOptions()">
You cannot allow live replay if you don't enable transcoding.
</span>

View File

@ -22,7 +22,7 @@
dir="ltr"
></my-markdown-textarea>
<div *ngIf="formErrors.instanceCustomHomepage.content" class="form-error">{{ formErrors.instanceCustomHomepage.content }}</div>
<div *ngIf="formErrors.instanceCustomHomepage.content" class="form-error" role="alert">{{ formErrors.instanceCustomHomepage.content }}</div>
</div>
</div>
</div>

View File

@ -16,7 +16,7 @@
formControlName="name" [ngClass]="{ 'input-error': formErrors.instance.name }"
>
<div *ngIf="formErrors.instance.name" class="form-error">{{ formErrors.instance.name }}</div>
<div *ngIf="formErrors.instance.name" class="form-error" role="alert">{{ formErrors.instance.name }}</div>
</div>
<div class="form-group">
@ -27,7 +27,7 @@
[ngClass]="{ 'input-error': formErrors['instance.shortDescription'] }"
></textarea>
<div *ngIf="formErrors.instance.shortDescription" class="form-error">{{ formErrors.instance.shortDescription }}</div>
<div *ngIf="formErrors.instance.shortDescription" class="form-error" role="alert">{{ formErrors.instance.shortDescription }}</div>
</div>
<div class="form-group">
@ -118,7 +118,7 @@
</select>
</div>
<div *ngIf="formErrors.instance.defaultNSFWPolicy" class="form-error">{{ formErrors.instance.defaultNSFWPolicy }}</div>
<div *ngIf="formErrors.instance.defaultNSFWPolicy" class="form-error" role="alert">{{ formErrors.instance.defaultNSFWPolicy }}</div>
</div>
<div class="form-group">

View File

@ -54,7 +54,7 @@
<span i18n>{form.value['live']['maxInstanceLives'], plural, =1 {live} other {lives}}</span>
</div>
<div *ngIf="formErrors.live.maxInstanceLives" class="form-error">{{ formErrors.live.maxInstanceLives }}</div>
<div *ngIf="formErrors.live.maxInstanceLives" class="form-error" role="alert">{{ formErrors.live.maxInstanceLives }}</div>
</div>
<div class="form-group" [ngClass]="getDisabledLiveClass()">
@ -66,7 +66,7 @@
<span i18n>{form.value['live']['maxUserLives'], plural, =1 {live} other {lives}}</span>
</div>
<div *ngIf="formErrors.live.maxUserLives" class="form-error">{{ formErrors.live.maxUserLives }}</div>
<div *ngIf="formErrors.live.maxUserLives" class="form-error" role="alert">{{ formErrors.live.maxUserLives }}</div>
</div>
<div class="form-group" [ngClass]="getDisabledLiveClass()">
@ -77,7 +77,7 @@
bindLabel="label" bindValue="value" [clearable]="false" [searchable]="true"
></my-select-options>
<div *ngIf="formErrors.live.maxDuration" class="form-error">{{ formErrors.live.maxDuration }}</div>
<div *ngIf="formErrors.live.maxDuration" class="form-error" role="alert">{{ formErrors.live.maxDuration }}</div>
</div>
</ng-container>
@ -178,7 +178,7 @@
formControlName="threads"
[clearable]="false"
></my-select-custom-value>
<div *ngIf="formErrors.live.transcoding.threads" class="form-error">{{ formErrors.live.transcoding.threads }}</div>
<div *ngIf="formErrors.live.transcoding.threads" class="form-error" role="alert">{{ formErrors.live.transcoding.threads }}</div>
</div>
<div class="form-group mt-4" [ngClass]="getDisabledLiveLocalTranscodingClass()">
@ -193,7 +193,7 @@
>
</my-select-options>
<div *ngIf="formErrors.live.transcoding.profile" class="form-error">{{ formErrors.live.transcoding.profile }}</div>
<div *ngIf="formErrors.live.transcoding.profile" class="form-error" role="alert">{{ formErrors.live.transcoding.profile }}</div>
</div>
</ng-container>

View File

@ -175,7 +175,7 @@
[clearable]="false"
></my-select-custom-value>
<div *ngIf="formErrors.transcoding.threads" class="form-error">{{ formErrors.transcoding.threads }}</div>
<div *ngIf="formErrors.transcoding.threads" class="form-error" role="alert">{{ formErrors.transcoding.threads }}</div>
</div>
<div class="form-group" [ngClass]="getLocalTranscodingDisabledClass()">
@ -187,7 +187,7 @@
<span i18n>jobs in parallel</span>
</div>
<div *ngIf="formErrors.transcoding.concurrency" class="form-error">{{ formErrors.transcoding.concurrency }}</div>
<div *ngIf="formErrors.transcoding.concurrency" class="form-error" role="alert">{{ formErrors.transcoding.concurrency }}</div>
</div>
<div class="form-group" [ngClass]="getLocalTranscodingDisabledClass()">
@ -201,7 +201,7 @@
[clearable]="false"
></my-select-options>
<div *ngIf="formErrors.transcoding.profile" class="form-error">{{ formErrors.transcoding.profile }}</div>
<div *ngIf="formErrors.transcoding.profile" class="form-error" role="alert">{{ formErrors.transcoding.profile }}</div>
</div>
</ng-container>

View File

@ -15,7 +15,7 @@
class="form-control" [ngClass]="{ 'input-error': formErrors['hostsOrHandles'] }" ngbAutofocus
></textarea>
<div *ngIf="formErrors.hostsOrHandles" class="form-error">
<div *ngIf="formErrors.hostsOrHandles" class="form-error" role="alert">
{{ formErrors.hostsOrHandles }}
<div *ngIf="form.controls['hostsOrHandles'].errors.validHostsOrHandles">

View File

@ -49,7 +49,7 @@
[ngClass]="{ 'input-error': formErrors['moderationResponse'] }" class="form-control"
></textarea>
<div *ngIf="formErrors.moderationResponse" class="form-error">
<div *ngIf="formErrors.moderationResponse" class="form-error" role="alert">
{{ formErrors.moderationResponse }}
</div>
</div>

View File

@ -85,7 +85,7 @@
type="text" id="username" i18n-placeholder placeholder="john" class="form-control"
formControlName="username" [ngClass]="{ 'input-error': formErrors['username'] }"
>
<div *ngIf="formErrors.username" class="form-error">
<div *ngIf="formErrors.username" class="form-error" role="alert">
{{ formErrors.username }}
</div>
</div>
@ -96,7 +96,7 @@
type="text" id="channelName" i18n-placeholder placeholder="john_channel" class="form-control"
formControlName="channelName" [ngClass]="{ 'input-error': formErrors['channelName'] }"
>
<div *ngIf="formErrors.channelName" class="form-error">
<div *ngIf="formErrors.channelName" class="form-error" role="alert">
{{ formErrors.channelName }}
</div>
</div>
@ -108,7 +108,7 @@
formControlName="email" [ngClass]="{ 'input-error': formErrors['email'] }"
autocomplete="off" [readonly]="user && user.pluginAuth !== null"
>
<div *ngIf="formErrors.email" class="form-error">
<div *ngIf="formErrors.email" class="form-error" role="alert">
{{ formErrors.email }}
</div>
</div>
@ -137,7 +137,7 @@
</select>
</div>
<div *ngIf="formErrors.role" class="form-error">
<div *ngIf="formErrors.role" class="form-error" role="alert">
{{ formErrors.role }}
</div>
</div>
@ -155,7 +155,7 @@
<my-user-real-quota-info [videoQuota]="getUserVideoQuota()"></my-user-real-quota-info>
<div *ngIf="formErrors.videoQuota" class="form-error">
<div *ngIf="formErrors.videoQuota" class="form-error" role="alert">
{{ formErrors.videoQuota }}
</div>
</div>
@ -171,7 +171,7 @@
[clearable]="false"
></my-select-custom-value>
<div *ngIf="formErrors.videoQuotaDaily" class="form-error">
<div *ngIf="formErrors.videoQuotaDaily" class="form-error" role="alert">
{{ formErrors.videoQuotaDaily }}
</div>
</div>

View File

@ -12,7 +12,7 @@
</button>
</div>
<div *ngIf="formErrors.password" class="form-error">
<div *ngIf="formErrors.password" class="form-error" role="alert">
{{ formErrors.password }}
</div>

View File

@ -49,7 +49,7 @@
>
</div>
<div *ngIf="formErrors.username" class="form-error">{{ formErrors.username }}</div>
<div *ngIf="formErrors.username" class="form-error" role="alert">{{ formErrors.username }}</div>
<div *ngIf="hasUsernameUppercase()" i18n class="form-warning">
⚠️ Most email addresses do not include capital letters.

View File

@ -31,7 +31,7 @@
>
<div class="input-group-text">@{{ instanceHost }}</div>
</div>
<div *ngIf="formErrors['name']" class="form-error">
<div *ngIf="formErrors['name']" class="form-error" role="alert">
{{ formErrors['name'] }}
</div>
</div>
@ -42,7 +42,7 @@
type="text" id="display-name" class="form-control d-block"
formControlName="display-name" [ngClass]="{ 'input-error': formErrors['display-name'] }"
>
<div *ngIf="formErrors['display-name']" class="form-error">
<div *ngIf="formErrors['display-name']" class="form-error" role="alert">
{{ formErrors['display-name'] }}
</div>
</div>
@ -53,7 +53,7 @@
id="description" formControlName="description" class="form-control d-block"
[ngClass]="{ 'input-error': formErrors['description'] }"
></textarea>
<div *ngIf="formErrors.description" class="form-error">
<div *ngIf="formErrors.description" class="form-error" role="alert">
{{ formErrors.description }}
</div>
</div>

View File

@ -19,7 +19,7 @@
type="email" id="new-email" i18n-placeholder placeholder="New email" class="form-control"
formControlName="new-email" [ngClass]="{ 'input-error': formErrors['new-email'] }"
>
<div *ngIf="formErrors['new-email']" class="form-error">
<div *ngIf="formErrors['new-email']" class="form-error" role="alert">
{{ formErrors['new-email'] }}
</div>
</div>

View File

@ -19,7 +19,7 @@
type="text" id="display-name" class="form-control"
formControlName="display-name" [ngClass]="{ 'input-error': formErrors['display-name'] }"
>
<div *ngIf="formErrors['display-name']" class="form-error">
<div *ngIf="formErrors['display-name']" class="form-error" role="alert">
{{ formErrors['display-name'] }}
</div>
</div>
@ -30,7 +30,7 @@
id="description" formControlName="description" class="form-control"
[ngClass]="{ 'input-error': formErrors['description'] }"
></textarea>
<div *ngIf="formErrors.description" class="form-error">
<div *ngIf="formErrors.description" class="form-error" role="alert">
{{ formErrors.description }}
</div>
</div>

View File

@ -10,7 +10,7 @@
<label i18n for="channel">Select a channel to receive the video</label>
<my-select-channel labelForId="channel" formControlName="channel" [items]="videoChannels"></my-select-channel>
<div *ngIf="formErrors.channel" class="form-error">{{ formErrors.channel }}</div>
<div *ngIf="formErrors.channel" class="form-error" role="alert">{{ formErrors.channel }}</div>
</div>
</div>

View File

@ -24,7 +24,7 @@
>
</div>
<div *ngIf="formErrors['externalChannelUrl']" class="form-error">
<div *ngIf="formErrors['externalChannelUrl']" class="form-error" role="alert">
{{ formErrors['externalChannelUrl'] }}
</div>
</div>
@ -33,7 +33,7 @@
<label i18n for="videoChannel">Video Channel</label>
<my-select-channel required [items]="userVideoChannels" formControlName="videoChannel"></my-select-channel>
<div *ngIf="formErrors['videoChannel']" class="form-error">
<div *ngIf="formErrors['videoChannel']" class="form-error" role="alert">
{{ formErrors['videoChannel'] }}
</div>
</div>

View File

@ -35,7 +35,7 @@
type="text" id="displayName" class="form-control"
formControlName="displayName" [ngClass]="{ 'input-error': formErrors['displayName'] }"
>
<div *ngIf="formErrors['displayName']" class="form-error">
<div *ngIf="formErrors['displayName']" class="form-error" role="alert">
{{ formErrors['displayName'] }}
</div>
</div>
@ -55,7 +55,7 @@
></my-select-options>
</div>
<div *ngIf="formErrors.privacy" class="form-error">
<div *ngIf="formErrors.privacy" class="form-error" role="alert">
{{ formErrors.privacy }}
</div>
</div>
@ -67,7 +67,7 @@
labelForId="videoChannelIdl" [items]="userVideoChannels" formControlName="videoChannelId"
></my-select-channel>
<div *ngIf="formErrors['videoChannelId']" class="form-error">
<div *ngIf="formErrors['videoChannelId']" class="form-error" role="alert">
{{ formErrors['videoChannelId'] }}
</div>
</div>

View File

@ -10,7 +10,7 @@
<label i18n for="next-ownership-username">Select the next owner</label>
<p-autoComplete formControlName="username" [suggestions]="usernamePropositions"
(completeMethod)="search($event)" id="next-ownership-username"></p-autoComplete>
<div *ngIf="formErrors.username" class="form-error">
<div *ngIf="formErrors.username" class="form-error" role="alert">
{{ formErrors.username }}
</div>
</div>

View File

@ -29,7 +29,7 @@
>
</div>
<div *ngIf="formErrors.displayName" class="form-error">{{ formErrors.displayName }}</div>
<div *ngIf="formErrors.displayName" class="form-error" role="alert">{{ formErrors.displayName }}</div>
</div>
<div class="col-md-12 col-xl-6 form-group">
@ -45,9 +45,9 @@
<div class="input-group-text">@{{ instanceHost }}</div>
</div>
<div *ngIf="formErrors.name" class="form-error">{{ formErrors.name }}</div>
<div *ngIf="formErrors.name" class="form-error" role="alert">{{ formErrors.name }}</div>
<div *ngIf="isSameThanUsername()" class="form-error" i18n>
<div *ngIf="isSameThanUsername()" class="form-error" role="alert" i18n>
Channel identifier cannot be the same as your account name. You can click on the first step to update your account name.
</div>
</div>

View File

@ -8,7 +8,7 @@
[ngClass]="{ 'input-error': formErrors['registrationReason'] }"
></textarea>
<div *ngIf="formErrors.registrationReason" class="form-error">{{ formErrors.registrationReason }}</div>
<div *ngIf="formErrors.registrationReason" class="form-error" role="alert">{{ formErrors.registrationReason }}</div>
</div>
<div class="form-group">
@ -23,6 +23,6 @@
</ng-template>
</my-peertube-checkbox>
<div *ngIf="formErrors.terms" class="form-error">{{ formErrors.terms }}</div>
<div *ngIf="formErrors.terms" class="form-error" role="alert">{{ formErrors.terms }}</div>
</div>
</form>

View File

@ -19,7 +19,7 @@
>
</div>
<div *ngIf="formErrors.displayName" class="form-error">{{ formErrors.displayName }}</div>
<div *ngIf="formErrors.displayName" class="form-error" role="alert">{{ formErrors.displayName }}</div>
</div>
<div class="col-md-12 col-xl-6 form-group">
@ -37,7 +37,7 @@
<span class="input-group-text">@{{ instanceHost }}</span>
</div>
<div *ngIf="formErrors.username" class="form-error">{{ formErrors.username }}</div>
<div *ngIf="formErrors.username" class="form-error" role="alert">{{ formErrors.username }}</div>
</div>
</div>
@ -54,7 +54,7 @@
formControlName="email" class="form-control" [ngClass]="{ 'input-error': formErrors['email'] }"
>
<div *ngIf="formErrors.email" class="form-error">{{ formErrors.email }}</div>
<div *ngIf="formErrors.email" class="form-error" role="alert">{{ formErrors.email }}</div>
</div>
<div class="col-md-12 col-xl-6 form-group">

View File

@ -10,7 +10,7 @@
formControlName="verify-email-email" class="form-control" [ngClass]="{ 'input-error': formErrors['verify-email-email'] }"
>
<div *ngIf="formErrors['verify-email-email']" class="form-error">{{ formErrors['verify-email-email'] }}</div>
<div *ngIf="formErrors['verify-email-email']" class="form-error" role="alert">{{ formErrors['verify-email-email'] }}</div>
</div>
<input class="peertube-button orange-button" type="submit" i18n-value value="Send verification email" [disabled]="!form.valid">

View File

@ -15,7 +15,7 @@
></ng-select>
</div>
<div *ngIf="formErrors.language" class="form-error">
<div *ngIf="formErrors.language" class="form-error" role="alert">
{{ formErrors.language }}
</div>

View File

@ -15,7 +15,7 @@
>
</textarea>
<div *ngIf="formErrors.captionFileContent" class="form-error">
<div *ngIf="formErrors.captionFileContent" class="form-error" role="alert">
{{ formErrors.captionFileContent }}
</div>
</div>

View File

@ -16,7 +16,7 @@
<div class="form-group">
<label i18n for="name">Title</label>
<input type="text" id="name" class="form-control" formControlName="name" />
<div *ngIf="formErrors.name" class="form-error">
<div *ngIf="formErrors.name" class="form-error" role="alert">
{{ formErrors.name }}
</div>
</div>
@ -35,7 +35,7 @@
</my-help>
<my-select-tags labelForId="label-tags" formControlName="tags"></my-select-tags>
<div *ngIf="formErrors.tags" class="form-error">
<div *ngIf="formErrors.tags" class="form-error" role="alert">
{{ formErrors.tags }}
</div>
</div>
@ -72,7 +72,7 @@
labelForId="category" [items]="videoCategories" formControlName="category" [clearable]="true"
></my-select-options>
<div *ngIf="formErrors.category" class="form-error">
<div *ngIf="formErrors.category" class="form-error" role="alert">
{{ formErrors.category }}
</div>
</div>
@ -92,7 +92,7 @@
labelForId="licence" [items]="videoLicences" formControlName="licence" [clearable]="true"
></my-select-options>
<div *ngIf="formErrors.licence" class="form-error">
<div *ngIf="formErrors.licence" class="form-error" role="alert">
{{ formErrors.licence }}
</div>
</div>
@ -104,7 +104,7 @@
[clearable]="true" [searchable]="true" [groupBy]="'group'"
></my-select-options>
<div *ngIf="formErrors.language" class="form-error">
<div *ngIf="formErrors.language" class="form-error" role="alert">
{{ formErrors.language }}
</div>
</div>
@ -115,7 +115,7 @@
labelForId="privacy" [items]="videoPrivacies" formControlName="privacy" [clearable]="false"
></my-select-options>
<div *ngIf="formErrors.privacy" class="form-error">
<div *ngIf="formErrors.privacy" class="form-error" role="alert">
{{ formErrors.privacy }}
</div>
</div>
@ -133,7 +133,7 @@
>
</p-calendar>
<div *ngIf="formErrors.schedulePublicationAt" class="form-error">
<div *ngIf="formErrors.schedulePublicationAt" class="form-error" role="alert">
{{ formErrors.schedulePublicationAt }}
</div>
</div>
@ -261,7 +261,7 @@
type="text" [id]="'title[' + i + ']'" [name]="'title[' + i + ']'" formControlName="title"
/>
<div [ngClass]="{ 'opacity-0': !formErrors.chapters[i].title }" class="form-error">
<div [ngClass]="{ 'opacity-0': !formErrors.chapters[i].title }" class="form-error" role="alert">
<span class="opacity-0">t</span> <!-- Ensure we have reserve a correct height -->
{{ formErrors.chapters[i].title }}
</div>
@ -271,7 +271,7 @@
</div>
</ng-container>
<div *ngIf="getChapterArrayErrors()" class="form-error">
<div *ngIf="getChapterArrayErrors()" class="form-error" role="alert">
{{ getChapterArrayErrors() }}
</div>
</div>
@ -353,7 +353,7 @@
labelForId="latencyMode" [items]="latencyModes" formControlName="latencyMode" [clearable]="true"
></my-select-options>
<div *ngIf="formErrors.latencyMode" class="form-error">
<div *ngIf="formErrors.latencyMode" class="form-error" role="alert">
{{ formErrors.latencyMode }}
</div>
</div>
@ -433,7 +433,7 @@
>
</p-calendar>
<div *ngIf="formErrors.originallyPublishedAt" class="form-error">
<div *ngIf="formErrors.originallyPublishedAt" class="form-error" role="alert">
{{ formErrors.originallyPublishedAt }}
</div>
</div>

View File

@ -37,7 +37,7 @@
</ul>
</ng-template>
</my-help>
<div *ngIf="formErrors.text" class="form-error">
<div *ngIf="formErrors.text" class="form-error" role="alert">
{{ formErrors.text }}
</div>
</div>

View File

@ -35,7 +35,7 @@
[ngClass]="{ 'input-error': formErrors['message'] }" class="form-control"
></textarea>
<div *ngIf="formErrors.message" class="form-error">
<div *ngIf="formErrors.message" class="form-error" role="alert">
{{ formErrors.message }}
</div>
</div>

View File

@ -12,7 +12,7 @@
formControlName="moderationComment" ngbAutofocus i18-placeholder placeholder="Comment this report…"
[ngClass]="{ 'input-error': formErrors['moderationComment'] }" class="form-control">
</textarea>
<div *ngIf="formErrors.moderationComment" class="form-error">
<div *ngIf="formErrors.moderationComment" class="form-error" role="alert">
{{ formErrors.moderationComment }}
</div>
</div>

View File

@ -40,7 +40,7 @@
<div *ngIf="setting.type === 'html'" [innerHTML]="setting.html"></div>
<div *ngIf="hasDedicatedFormError() && formErrors[setting.name]" class="form-error">
<div *ngIf="hasDedicatedFormError() && formErrors[setting.name]" class="form-error" role="alert">
{{ formErrors[setting.name] }}
</div>

View File

@ -19,4 +19,4 @@
</my-copy-button>
</div>
<div *ngIf="formError" class="form-error">{{ formError }}</div>
<div *ngIf="formError" class="form-error" role="alert">{{ formError }}</div>

View File

@ -34,5 +34,5 @@
<div [ngbNavOutlet]="nav"></div>
<div *ngIf="!isMaximized && formError" class="form-error">{{ formError }}</div>
<div *ngIf="!isMaximized && formError" class="form-error" role="alert">{{ formError }}</div>
</div>

View File

@ -15,7 +15,7 @@
class="form-control" [ngClass]="{ 'input-error': formErrors['hosts'] }" ngbAutofocus
></textarea>
<div *ngIf="formErrors.hosts" class="form-error">
<div *ngIf="formErrors.hosts" class="form-error" role="alert">
{{ formErrors.hosts }}
<div *ngIf="form.controls['hosts'].errors.validHosts">

View File

@ -41,7 +41,7 @@
i18n-placeholder placeholder="Please describe the issue..." formControlName="reason" ngbAutofocus
[ngClass]="{ 'input-error': formErrors['reason'] }" class="form-control"
></textarea>
<div *ngIf="formErrors.reason" class="form-error">
<div *ngIf="formErrors.reason" class="form-error" role="alert">
{{ formErrors.reason }}
</div>
</div>

View File

@ -72,7 +72,7 @@
i18n-placeholder placeholder="Please describe the issue..." formControlName="reason" ngbAutofocus
[ngClass]="{ 'input-error': formErrors['reason'] }" class="form-control"
></textarea>
<div *ngIf="formErrors.reason" class="form-error">
<div *ngIf="formErrors.reason" class="form-error" role="alert">
{{ formErrors.reason }}
</div>
</div>

View File

@ -16,7 +16,7 @@
i18n-placeholder placeholder="Reason..." formControlName="reason"
class="form-control" [ngClass]="{ 'input-error': formErrors['reason'] }"
></textarea>
<div *ngIf="formErrors.reason" class="form-error">
<div *ngIf="formErrors.reason" class="form-error" role="alert">
{{ formErrors.reason }}
</div>
</div>

View File

@ -20,7 +20,7 @@
i18n-placeholder placeholder="Please describe the reason..." formControlName="reason"
[ngClass]="{ 'input-error': formErrors['reason'] }" class="form-control"
></textarea>
<div *ngIf="formErrors.reason" class="form-error">
<div *ngIf="formErrors.reason" class="form-error" role="alert">
{{ formErrors.reason }}
</div>
</div>

View File

@ -74,7 +74,7 @@
type="text" id="displayName"
formControlName="displayName" [ngClass]="{ 'input-error': formErrors['displayName'] }"
>
<div *ngIf="formErrors['displayName']" class="form-error">
<div *ngIf="formErrors['displayName']" class="form-error" role="alert">
{{ formErrors['displayName'] }}
</div>
</div>