Merge pull request #1216 from nextcloud/a11yContentDescription

A11y content description
This commit is contained in:
Andy Scherzinger 2021-05-05 10:47:28 +02:00 committed by GitHub
commit b97b25177a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 99 additions and 27 deletions

View File

@ -193,24 +193,42 @@ public class UserItem extends AbstractFlexibleItem<UserItem.UserItemViewHolder>
holder.videoCallImageView.setVisibility(View.GONE);
break;
case IN_CALL:
holder.voiceOrSimpleCallImageView.setBackground(resources.getDrawable(R.drawable.shape_call_bubble));
holder.voiceOrSimpleCallImageView.setBackground(
ResourcesCompat.getDrawable(resources, R.drawable.shape_call_bubble, null));
holder.voiceOrSimpleCallImageView.setVisibility(View.VISIBLE);
holder.voiceOrSimpleCallImageView.setContentDescription(
resources.getString(R.string.nc_call_state_in_call, participant.displayName));
holder.videoCallImageView.setVisibility(View.GONE);
break;
case IN_CALL_WITH_AUDIO:
holder.voiceOrSimpleCallImageView.setBackground(resources.getDrawable(R.drawable.shape_voice_bubble));
holder.voiceOrSimpleCallImageView.setBackground(
ResourcesCompat.getDrawable(resources, R.drawable.shape_voice_bubble, null));
holder.voiceOrSimpleCallImageView.setVisibility(View.VISIBLE);
holder.voiceOrSimpleCallImageView.setContentDescription(
resources.getString(R.string.nc_call_state_in_call_with_audio, participant.displayName));
holder.videoCallImageView.setVisibility(View.GONE);
break;
case IN_CALL_WITH_VIDEO:
holder.voiceOrSimpleCallImageView.setBackground(resources.getDrawable(R.drawable.shape_call_bubble));
holder.videoCallImageView.setBackground(resources.getDrawable(R.drawable.shape_video_bubble));
holder.voiceOrSimpleCallImageView.setBackground(
ResourcesCompat.getDrawable(resources, R.drawable.shape_call_bubble, null));
holder.videoCallImageView.setBackground(
ResourcesCompat.getDrawable(resources, R.drawable.shape_video_bubble, null));
holder.voiceOrSimpleCallImageView.setContentDescription(
resources.getString(R.string.nc_call_state_in_call, participant.displayName));
holder.videoCallImageView.setContentDescription(
resources.getString(R.string.nc_call_state_with_video, participant.displayName));
holder.voiceOrSimpleCallImageView.setVisibility(View.VISIBLE);
holder.videoCallImageView.setVisibility(View.VISIBLE);
break;
case IN_CALL_WITH_AUDIO_AND_VIDEO:
holder.voiceOrSimpleCallImageView.setBackground(resources.getDrawable(R.drawable.shape_voice_bubble));
holder.videoCallImageView.setBackground(resources.getDrawable(R.drawable.shape_video_bubble));
holder.voiceOrSimpleCallImageView.setBackground(
ResourcesCompat.getDrawable(resources, R.drawable.shape_voice_bubble, null));
holder.videoCallImageView.setBackground(
ResourcesCompat.getDrawable(resources, R.drawable.shape_video_bubble, null));
holder.voiceOrSimpleCallImageView.setContentDescription(
resources.getString(R.string.nc_call_state_in_call_with_audio));
holder.videoCallImageView.setContentDescription(
resources.getString(R.string.nc_call_state_with_video));
holder.voiceOrSimpleCallImageView.setVisibility(View.VISIBLE);
holder.videoCallImageView.setVisibility(View.VISIBLE);
break;
@ -220,7 +238,6 @@ public class UserItem extends AbstractFlexibleItem<UserItem.UserItemViewHolder>
break;
}
if (holder.contactMentionId != null) {
String userType = "";

View File

@ -194,12 +194,20 @@ class MagicOutcomingTextMessageViewHolder(itemView: View) : OutcomingTextMessage
else -> null
}
val readStatusContentDescriptionString = when (message.readStatus) {
ReadStatus.READ -> context?.resources?.getString(R.string.nc_message_read)
ReadStatus.SENT -> context?.resources?.getString(R.string.nc_message_sent)
else -> null
}
readStatusDrawableInt?.let { drawableInt ->
context?.resources?.getDrawable(drawableInt, null)?.let {
it.setColorFilter(context?.resources!!.getColor(R.color.white60), PorterDuff.Mode.SRC_ATOP)
checkMark?.setImageDrawable(it)
}
}
checkMark?.setContentDescription(readStatusContentDescriptionString)
}
init {

View File

@ -759,6 +759,11 @@ public class ProfileController extends BaseController {
holder.scope.setImageResource(R.drawable.ic_link);
break;
}
holder.scope.setContentDescription(
controller.getActivity().getResources().getString(
R.string.scope_toggle_description,
item.hint));
}
holder.icon.setImageResource(item.icon);

View File

@ -35,13 +35,8 @@ import android.view.inputmethod.EditorInfo;
import android.widget.Button;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import autodagger.AutoInjector;
import butterknife.BindView;
import butterknife.OnClick;
import com.bluelinelabs.conductor.RouterTransaction;
import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
import com.nextcloud.talk.R;
import com.nextcloud.talk.application.NextcloudTalkApplication;
@ -65,6 +60,11 @@ import org.parceler.Parcels;
import javax.inject.Inject;
import androidx.annotation.NonNull;
import autodagger.AutoInjector;
import butterknife.BindView;
import butterknife.OnClick;
@AutoInjector(NextcloudTalkApplication.class)
public class EntryMenuController extends BaseController {
@ -95,7 +95,6 @@ public class EntryMenuController extends BaseController {
private EmojiPopup emojiPopup;
private Bundle originalBundle;
public EntryMenuController(Bundle args) {
@ -116,6 +115,7 @@ public class EntryMenuController extends BaseController {
this.callUrl = args.getString(BundleKeys.INSTANCE.getKEY_CALL_URL(), "");
}
@NonNull
@Override
protected View inflateView(@NonNull LayoutInflater inflater, @NonNull ViewGroup container) {
return inflater.inflate(R.layout.controller_entry_menu, container, false);

View File

@ -2,6 +2,8 @@
~ Nextcloud Talk application
~
~ @author Mario Danic
~ @author Andy Scherzinger
~ Copyright (C) 2021 Andy Scherzinger <info@andy-scherzinger.de>
~ Copyright (C) 2017 Mario Danic <mario@lovelyhq.com>
~
~ This program is free software: you can redistribute it and/or modify
@ -46,6 +48,7 @@
android:layout_alignParentStart="true"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:contentDescription="@string/nc_remote_audio_off"
android:src="@drawable/ic_mic_off_white_24px"
android:visibility="invisible" />
@ -56,6 +59,7 @@
android:layout_below="@id/peer_nick_text_view"
android:layout_marginStart="8dp"
android:layout_toEndOf="@id/remote_audio_off"
android:contentDescription="@string/nc_remote_video_off"
android:src="@drawable/ic_videocam_off_white_24px"
android:visibility="invisible" />

View File

@ -2,6 +2,8 @@
~ Nextcloud Talk application
~
~ @author Mario Danic
~ @author Andy Scherzinger
~ Copyright (C) 2021 Andy Scherzinger <info@andy-scherzinger.de>
~ Copyright (C) 2017-2019 Mario Danic <mario@lovelyhq.com>
~
~ This program is free software: you can redistribute it and/or modify
@ -29,6 +31,7 @@
android:layout_height="48dp"
android:layout_above="@id/callStateTextView"
android:layout_centerHorizontal="true"
android:contentDescription="@null"
android:src="@drawable/ic_signal_wifi_off_white_24dp"
android:visibility="gone" />

View File

@ -2,6 +2,8 @@
~ Nextcloud Talk application
~
~ @author Mario Danic
~ @author Andy Scherzinger
~ Copyright (C) 2021 Andy Scherzinger <info@andy-scherzinger.de>
~ Copyright (C) 2017-2018 Mario Danic <mario@lovelyhq.com>
~
~ This program is free software: you can redistribute it and/or modify
@ -27,6 +29,7 @@
android:id="@+id/backgroundImageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@null"
android:scaleType="centerCrop"
android:src="@color/grey950"
tools:srcCompat="@tools:sample/backgrounds/scenic" />
@ -48,7 +51,7 @@
app:backgroundImage="@color/nc_darkGreen"
app:placeholderImage="@drawable/ic_call_white_24dp"
app:roundAsCircle="true"
tools:visibility="visible"/>
tools:visibility="visible" />
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/callControlHangupView"
@ -68,7 +71,7 @@
app:backgroundImage="@color/nc_darkGreen"
app:placeholderImage="@drawable/ic_videocam_white_24px"
app:roundAsCircle="true"
tools:visibility="visible"/>
tools:visibility="visible" />
</LinearLayout>
<RelativeLayout
@ -105,11 +108,11 @@
android:id="@+id/incomingCallDescriptionTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/conversationNameTextView"
android:text="@string/nc_call_incoming"
android:textAlignment="center"
android:textColor="@color/controller_call_incomingCallTextView"
android:textSize="16sp"
android:layout_below="@+id/conversationNameTextView" />
android:textSize="16sp" />
</RelativeLayout>

View File

@ -74,6 +74,7 @@
android:layout_alignParentEnd="true"
android:layout_marginStart="-4dp"
android:background="@color/transparent"
android:contentDescription="@string/nc_add_emojis"
android:src="@drawable/ic_insert_emoticon_black_24dp"
android:tint="@color/emoji_icons"
android:visibility="gone"

View File

@ -46,6 +46,7 @@
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_gravity="center"
android:contentDescription="@string/nc_locked"
android:src="@drawable/ic_lock_white_24px" />
</FrameLayout>
@ -57,7 +58,7 @@
android:layout_gravity="center_horizontal"
android:paddingTop="16dp"
android:paddingBottom="56dp"
android:text="@string/nc_locked"
android:text="@string/nc_locked_tap_to_unlock"
android:textAlignment="center"
android:textColor="@color/textColorOnPrimaryBackground"
android:textSize="22sp" />

View File

@ -32,6 +32,7 @@
android:layout_marginTop="24dp"
android:layout_marginEnd="24dp"
android:layout_marginBottom="8dp"
android:contentDescription="@null"
android:tintMode="src_in"
android:visibility="gone" />

View File

@ -2,6 +2,8 @@
~ Nextcloud Talk application
~
~ @author Mario Danic
~ @author Andy Scherzinger
~ Copyright (C) 2021 Andy Scherzinger <info@andy-scherzinger.de>
~ Copyright (C) 2017-2018 Mario Danic <mario@lovelyhq.com>
~
~ This program is free software: you can redistribute it and/or modify
@ -66,7 +68,8 @@
android:layout_height="wrap_content"
android:layout_below="@id/messageTime"
android:layout_marginStart="8dp"
app:layout_alignSelf="center" />
app:layout_alignSelf="center"
android:contentDescription="@null" />
</com.google.android.flexbox.FlexboxLayout>
</RelativeLayout>

View File

@ -2,6 +2,8 @@
~ Nextcloud Talk application
~
~ @author Mario Danic
~ @author Andy Scherzinger
~ Copyright (C) 2021 Andy Scherzinger <info@andy-scherzinger.de>
~ Copyright (C) 2017-2019 Mario Danic <mario@lovelyhq.com>
~
~ This program is free software: you can redistribute it and/or modify
@ -32,6 +34,7 @@
android:layout_above="@id/lobby_text_view"
android:layout_centerHorizontal="true"
android:layout_margin="@dimen/margin_between_elements"
android:contentDescription="@string/nc_lobby"
android:src="@drawable/ic_room_service_black_24dp"
app:tint="@color/grey_600" />
@ -40,9 +43,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_margin="@dimen/margin_between_elements"
android:layout_margin="@dimen/standard_margin"
android:text="@string/nc_lobby_waiting"
android:textAlignment="center"
android:textColor="@color/grey_600" />
android:textColor="@color/grey_600"
android:textSize="16sp" />
</RelativeLayout>

View File

@ -2,6 +2,8 @@
~ Nextcloud Talk application
~
~ @author Mario Danic
~ @author Andy Scherzinger
~ Copyright (C) 2021 Andy Scherzinger <info@andy-scherzinger.de>
~ Copyright (C) 2017 Mario Danic <mario@lovelyhq.com>
~
~ This program is free software: you can redistribute it and/or modify
@ -32,6 +34,7 @@
android:layout_height="24dp"
android:layout_centerVertical="true"
android:layout_marginStart="16dp"
android:contentDescription="@null"
android:focusable="false"
android:focusableInTouchMode="false"
tools:src="@drawable/ic_add_grey600_24px" />

View File

@ -53,6 +53,7 @@
android:layout_height="16dp"
android:layout_below="@id/file_icon"
android:layout_alignStart="@+id/file_icon"
android:contentDescription="@string/encrypted"
android:src="@drawable/ic_lock_grey600_24px" />
<TextView

View File

@ -59,6 +59,7 @@
android:layout_centerVertical="true"
android:layout_marginStart="@dimen/standard_margin"
android:background="?android:attr/selectableItemBackground"
android:contentDescription="@null"
android:scaleType="center"
android:src="@drawable/ic_more_horiz_black_24dp" />

View File

@ -38,6 +38,7 @@
android:layout_height="12dp"
android:layout_gravity="bottom|end"
android:background="@drawable/shape_lock_bubble"
android:contentDescription="@null"
android:visibility="gone"
tools:visibility="visible" />
@ -47,6 +48,7 @@
android:layout_height="12dp"
android:layout_gravity="top|end"
android:background="@drawable/shape_favorite_bubble"
android:contentDescription="@null"
android:visibility="gone"
tools:visibility="visible" />

View File

@ -30,7 +30,7 @@
android:layout_width="@dimen/iconized_single_line_item_icon_size"
android:layout_height="@dimen/iconized_single_line_item_icon_size"
android:layout_marginStart="@dimen/standard_margin"
android:contentDescription="@string/account_icon"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"

View File

@ -46,7 +46,8 @@
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_below="@id/quotedChatMessageView"
android:scaleType="centerInside" />
android:scaleType="centerInside"
android:contentDescription="@string/nc_add_attachment" />
<ImageButton
android:id="@+id/smileyButton"
@ -56,7 +57,8 @@
android:layout_toStartOf="@id/messageSendButton"
android:background="@color/transparent"
android:src="@drawable/ic_insert_emoticon_black_24dp"
android:tint="@color/emoji_icons" />
android:tint="@color/emoji_icons"
android:contentDescription="@string/nc_add_emojis" />
<ImageButton
android:id="@id/messageSendButton"
@ -66,7 +68,8 @@
android:layout_below="@id/quotedChatMessageView"
android:adjustViewBounds="true"
android:padding="4dp"
android:scaleType="centerInside" />
android:scaleType="centerInside"
android:contentDescription="@string/nc_description_send_message_button" />
<Space
android:id="@id/attachmentButtonSpace"

View File

@ -128,7 +128,8 @@
<string name="nc_settings_link_previews_desc">Allows previews of content from received links for supported services</string>
<string name="nc_settings_link_previews_key" translatable="false">link_previews</string>
<string name="nc_settings_read_privacy_key" translatable="false">read_privacy</string>
<string name="nc_locked">Tap to unlock</string>
<string name="nc_locked_tap_to_unlock">Tap to unlock</string>
<string name="nc_locked">Locked</string>
<string name="nc_settings_read_privacy_desc">Share my read-status and show the read-status of others</string>
<string name="nc_settings_read_privacy_title">Read status</string>
@ -209,6 +210,9 @@
<string name="nc_call_reconnecting">Reconnecting…</string>
<string name="nc_offline">Currently offline, please check your connectivity</string>
<string name="nc_leaving_call">Leaving call…</string>
<string name="nc_call_state_in_call">%1$s in call</string>
<string name="nc_call_state_in_call_with_audio">%1$s in call with audio</string>
<string name="nc_call_state_with_video">%1$s with video</string>
<!-- Notification channels -->
<string name="nc_notification_channel">%1$s on %2$s notification channel</string>
@ -232,6 +236,7 @@
<string name="nc_ok">OK</string>
<string name="nc_call_name">Conversation name</string>
<string name="nc_proceed">Proceed</string>
<string name="nc_add_emojis">Add emojis</string>
<string name="nc_call_name_is_same">The name you entered is the same as the existing one</string>
<string name="nc_wrong_link">Conversation link is not valid</string>
<string name="nc_share_text">Join the conversation at %1$s/index.php/call/%2$s</string>
@ -274,6 +279,11 @@
<string name="nc_message_quote_cancel_reply">Cancel reply</string>
<!-- When translating to German, please use non-formal variant -->
<string name="nc_formatted_message_you">You: %1$s</string>
<string name="nc_message_read">Message read</string>
<string name="nc_message_sent">Message sent</string>
<string name="nc_remote_video_off">Remote video off</string>
<string name="nc_remote_audio_off">Remote audio off</string>
<string name="nc_add_attachment">Add attachment</string>
<!-- Contacts endless loading -->
<string name="nc_no_more_load_retry">No more items to load. Refresh to retry.</string>
@ -368,6 +378,7 @@
<string name="nc_phone_book_integration_account_not_found">Account not found</string>
<string name="starred">Favorite</string>
<string name="encrypted">Encrypted</string>
<string name="password_protected">Password protected</string>
<string name="avatar">Avatar</string>
@ -398,6 +409,7 @@
<string name="scope_published_title">Published</string>
<string name="scope_published_description">Synchronize to trusted servers and the global and public address book</string>
<string name="scope_toggle">Scope toggle</string>
<string name="scope_toggle_description">Change privacy level of %1$s</string>
<!-- App Bar -->
<string name="appbar_search_in">Search in %s</string>

View File

@ -1,2 +1,2 @@
DO NOT TOUCH; GENERATED BY DRONE
<span class="mdl-layout-title">Lint Report: 3 errors and 367 warnings</span>
<span class="mdl-layout-title">Lint Report: 3 errors and 346 warnings</span>