fix: 无障碍体验问题

This commit is contained in:
orz12
2024-03-07 09:32:18 +08:00
parent 9d684d1976
commit 7331038cdc
3 changed files with 53 additions and 44 deletions

View File

@@ -249,13 +249,12 @@ class _DynamicDetailPageState extends State<DynamicDetailPage>
scale: animation, child: child); scale: animation, child: child);
}, },
child: Text( child: Text(
'${_dynamicDetailController.acount.value}', '${_dynamicDetailController.acount.value}条回复',
key: ValueKey<int>( key: ValueKey<int>(
_dynamicDetailController.acount.value), _dynamicDetailController.acount.value),
), ),
), ),
), ),
const Text('条回复'),
const Spacer(), const Spacer(),
SizedBox( SizedBox(
height: 35, height: 35,

View File

@@ -117,7 +117,8 @@ Widget videoSeasonWidget(item, context, type, {floor = 1}) {
Colors.black54, Colors.black54,
], ],
), ),
borderRadius: BorderRadius.circular(StyleString.imgRadius.x)), borderRadius:
BorderRadius.circular(StyleString.imgRadius.x)),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.end,
@@ -131,7 +132,12 @@ Widget videoSeasonWidget(item, context, type, {floor = 1}) {
color: Colors.white), color: Colors.white),
child: Row( child: Row(
children: [ children: [
Text(content.durationText ?? ''), if (content.durationText != null)
Text(
content.durationText,
semanticsLabel:
'时长${Utils.durationReadFormat(content.durationText)}',
),
if (content.durationText != null) if (content.durationText != null)
const SizedBox(width: 10), const SizedBox(width: 10),
Text(content.stat.play + '次围观'), Text(content.stat.play + '次围观'),

View File

@@ -214,6 +214,7 @@ class ReplyItem extends StatelessWidget {
margin: const EdgeInsets.only(top: 10, left: 45, right: 6, bottom: 4), margin: const EdgeInsets.only(top: 10, left: 45, right: 6, bottom: 4),
child: Semantics( child: Semantics(
label: replyItem?.content?.message ?? "", label: replyItem?.content?.message ?? "",
excludeSemantics: true,
child: Text.rich( child: Text.rich(
style: const TextStyle(height: 1.75), style: const TextStyle(height: 1.75),
maxLines: maxLines:
@@ -387,6 +388,9 @@ class ReplyItemRow extends StatelessWidget {
8, 8,
i == 0 && (extraRow == 1 || replies!.length > 1) ? 5 : 6, i == 0 && (extraRow == 1 || replies!.length > 1) ? 5 : 6,
), ),
child: Semantics(
label: replies![i].member.uname + ' ' + replies![i].content.message,
excludeSemantics: true,
child: Text.rich( child: Text.rich(
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
maxLines: 2, maxLines: 2,
@@ -404,8 +408,8 @@ class ReplyItemRow extends StatelessWidget {
recognizer: TapGestureRecognizer() recognizer: TapGestureRecognizer()
..onTap = () { ..onTap = () {
feedBack(); feedBack();
final String heroTag = final String heroTag = Utils.makeHeroTag(
Utils.makeHeroTag(replies![i].member.mid); replies![i].member.mid);
Get.toNamed( Get.toNamed(
'/member?mid=${replies![i].member.mid}', '/member?mid=${replies![i].member.mid}',
arguments: { arguments: {
@@ -428,7 +432,7 @@ class ReplyItemRow extends StatelessWidget {
context, replies![i], replyReply, replyItem), context, replies![i], replyReply, replyItem),
], ],
), ),
), )),
), ),
) )
], ],