游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

使Airbnb的Android应用程序更易于访问(译文)

  在Airbnb,我们一直在有意识地设计和构建可供所有用户平等使用的产品。使我们的移动应用程序和网站更易于访问不仅符合我们公司创造一个人们可以随处归属的世界的使命,而且还支持残疾人的公民权利并遵守法律。
  在本文中,我们重点介绍了我们为使应用程序更易于访问所做的一些努力,例如,标记UI元素、对相关内容进行分组、支持大字体、提供标题和页面名称。Airbnb应用程序是最受欢迎的旅行应用程序之一,拥有数百万用户并支持许多功能。使如此复杂的应用程序更易于访问是我们不断努力的一项巨大努力。第一部分:为所有人构建:我们应用的最佳实践
  在Airbnb,我们遵循行业最佳实践来使Android应用程序易于访问。如果您有兴趣,您可以从官方Android文档中找到我们遵循的所有最佳实践,以了解平台特定指南和作为行业标准的Web内容可访问性指南。在这里,我们想强调几个我们应用最佳实践的例子:最佳实践:内容描述
  一切都应该有准确的内容描述,除非它们应该被辅助技术忽略。在这些示例中,共享按钮具有TalkBack朗读的内容描述。TalkBack跳过房子图标。
  最佳实践:分组
  自然组的元素可以与可聚焦的容器一起公布,以提高可用性和准确性。例如,Talkback将卡片上的所有列表内容一起阅读。
  最佳实践:字体比例
  当用户增加系统字体比例时,UI应该可用。
  默认与放大字体比例:
  左侧的默认字体比例。右侧放大的字体比例。
  扩展最佳实践
  AirbnbAndroid应用程序是一款包含多个屏幕的大型应用程序。如果我们需要在任何地方添加可访问性代码,那将会很累而且不可扩展。幸运的是,我们的设计语言系统使我们能够以高效的方式在产品表面广泛应用这些最佳实践。每个屏幕都是用一组可重用的UI组件构建的。当我们改进一个组件的可访问性时,更改将应用于将此组件作为视图一部分的所有页面。这对我们应用程序的辅助功能改进产生了持久的积极影响。这是一个例子:
  以SectionHeader为例。此UI组件用于传达页面上的结构并将内容组合在一起。我们在组件代码中将此组件标记为可访问性标题,以便在包含此组件的所有屏幕中都可以访问它。classSectionHeader(。。。){init{isAccessibilityHeadingtrue}}第二部分:为工程师提供自动化检查
  我们投资了自动化的可访问性测试和linting以在每次代码提交时运行,这为工程师创建了一个快速反馈循环,并使他们能够在编写代码时使应用程序可访问。这些检查快速、可靠,并且可以很好地扩展我们在Android应用程序中快速增长的功能。自动化测试
  我们设置了基于Espresso的自动化测试来检查可访问性问题。Espresso是一个流行的AndroidUI测试库,具有内置的可访问性检查。它支持一套全面的可访问性规则并且易于设置:funView。validateAccessibility(){AccessibilityChecks。enable()。checkAndReturnResults(this)}
  如果可访问性检查失败,测试会输出一个错误堆栈跟踪,工程师可以使用它来调试问题。例如:AccessibilityViewCheckException:Therewas1accessibilityerror:〔。。。〕AirImageView{。。。resnamelogo,。。。}:Viewismissingspeakabletextneededforascreenreader
  在此示例中,工程师可以向图像视图提供内容描述以满足可访问性要求。
  我们还使用更大的字体截屏测试我们的组件,以确保使用Happo的行为是正确的。
  Linting
  除了自动化测试之外,我们还启用了linting,包括用于可访问性的AndroidLint规则和使用Ktlint构建的自定义lint规则。
  以下是Android可访问性lint规则的示例:!OnesampleAccessibilitylintcheckissueidContentDescriptionseveritywarning
  除了内置的AndroidLint,我们还使用Ktlint来构建自定义lint规则。例如,当用户导航到新屏幕时,我们会提供页面名称供屏幕阅读器宣布。我们使用以下规则来确保页面名称已本地化。classA11yPageNameCorrectnessRule(moduleResolver:ModuleResolver){overridefuncheck(element:PsiElement){failIf(element。containsA11yPageNameStringLiteral()}){PleasedonotuseStringliteral。Thea11ypagenameisreadouttoTalkbackuserswhentheynavigatetoanewscreen。Thepagenameneedstobelocalized。}}}
  Lint规则易于设置并提供及时的反馈,但linting有局限性它只能执行静态代码分析。
  今天,这些自动检查作为CI(持续集成)检查的一部分运行,用于每次代码提交。如果拉取请求未通过检查,它将被阻止合并到主代码分支中。我们仍然使用手动测试来覆盖自动检查未覆盖的区域,例如页面上UI元素的遍历顺序。自动检查和手动检查可以很好地互补。第III部分:展望未来:Compose的可访问性
  在过去的一年里,我们一直在将JetpackCompose集成到我们的应用程序中。Google的Compose辅助功能文档是确保我们的Compose组件和屏幕保持可访问性的重要资源。虽然视图中存在一些值得注意的缺失(例如焦点顺序修改),但Compose仍然是一个年轻的库,我们期待未来的改进。关于我们的特定于Compose的可访问性工具,以下是一些值得一提的事情:主动鼓励API中的内容描述
  我们对UI组件的指导方针之一是,通过函数参数公开的内容描述不应使用默认值。当工程师使用组件时,这将可访问性放在首位,因为他们需要考虑传递什么值。在UI元素对于可访问性不重要的情况下,空值仍然可以接受。
  ComposablefunIconRow(DrawableResiconResourceId:Int,iconContentDescription:String?,modifier:ModifierModifier,secondaryText:Composable()Unit{},text:Composable()Unit)页面名称公告
  使用片段和视图时,我们在导航到新屏幕时使用View。setAccessibilityPaneTitle()和View。announceForAccessibility()API向用户宣布描述性页面名称。Compose中不存在这些API,但我们希望保留该功能,因为它有助于提供更多关于新屏幕显示内容的上下文。我们当前的解决方法是在屏幕的外部可组合项上设置某些语义:Modifier。semantics{liveRegionLiveRegionMode。PolitefocusedtruecontentDescriptionDescriptionofthescreencontents}
  我们使用liveRegion属性,以便在内容描述更改时可以宣布更改。这对于其全部内容由服务器响应确定的页面很有用。在这种情况下,TalkBack会在网络请求挂起时宣布内容加载,然后在完成时宣布内容已加载,最后是服务器响应中定义的页面描述。这种方法的一个缺点是它需要外部容器是可聚焦的,这需要额外的导航操作才能到达内容。结语
  使我们的Android应用程序更易于访问是一个有影响力的旅程。提高应用程序的可访问性涉及遵循最佳实践、增加严格的执行、不断从错误中学习并投入工作。所有这些都是确保应用程序适用于所有用户的值得付出的努力。
  如果您对构建高度可访问的产品和支持它们的框架感到兴奋,请查看我们的一些相关空缺职位:
  员工Android软件工程师,访客
  高级iOS软件工程师,基础设施致谢
  使像AirbnbAndroid应用程序这样的复杂应用程序更易于访问是一项巨大的努力。如果没有数字无障碍团队和Airbnb紧密联系的Android社区的巨大努力,这项工作是不可能完成的。每个工程师都为使他们拥有的功能易于访问做出了贡献。让Android应用程序更易于访问是一项持续的努力,没有所有这些,它就不可能成功。
  作者:JuliaFu,PeterElliott
  出处:https:medium。comairbnbengineeringmakingairbnbsandroidappmoreaccessible75618172be6

红楼梦里最著名的一道小菜,尽显时间的风味《红楼梦》刘姥姥进贾府,贾母带着她吃喝玩乐,由此也带出了豪门贵族在生活上食衣住行的种种细节。其实许多读者在读《红楼梦》小说的时候,对小说里贵族生活的讲究是很羡慕的,尤其是小说中……如何更健康地吃车前草?车前草又叫牛甜菜,幼苗和嫩叶广泛用于小炒、煲汤和做馅料,是大家已经接受的野生蔬菜。说到更健康的吃法,给小伙伴们介绍一款车前草炖素排吧,不足之处,欢迎补充。素排,是用豆制品……开车312。5公里,我在银川吃到了全世界最好吃的手抓羊肉!值又到一年清明小长假,盘算着该去哪里玩玩了,一开年紧绷的神经就没停下来,工作的时候往死里干,放假的时候朝胖了吃,这种活法么麻达!人生何其短暂,每天要是都能过得酣畅淋漓,也未尝不是……别让水果味电子烟继续暗度陈仓作者:熊志一些水果味电子烟继续在线上线下隐秘销售媒体记者在多个微信群看到,不少电子烟从业者在群内叫卖批发此前已经规定下架的水果味电子烟,除了涉及市场上多个知名品牌,还有此……碾压大胜!布克2433,艾顿76,保罗越老越妖,这才是狂野西北京时间11月6日,NBA常规赛太阳主场迎战开拓者,两队不久前曾交过手,当时格兰特绝杀了太阳,显然太阳此役的目标就是复仇。首发阵容方面,太阳为保罗、布克、布里奇斯、克雷格和艾顿……人祸!多名球星感染,数队团灭,英超联盟,正在毁掉欧洲足球千里之堤,溃于蚁穴这个典故相信大家都耳熟能详,目前的英超联赛所面临的就是这种情况:一开始,坎特新冠阳性,没有人当回事,后来,德布劳内新冠阳性,也没有引起什么议论,仿佛什么……王文华与客商洽谈低碳微晶材料绿色制造循环产业园项目合作事宜3月3日下午,市委书记王文华与广西中炀海业材料科技有限公司、中科城乡发展(长沙)集团有限公司、中郡庄艺(泉州)新材料有限公司等企业代表团洽谈低碳微晶材料绿色制造循环产业园项目合……华为新折叠屏手机MateV曝光,定位女性用户说起折叠屏,华为和三星算手机里的先锋了,但他们不是最早推出折叠屏手机的。而是来自深圳的柔宇科技公司。柔宇在2018年10月发布了全球第一款折叠屏手机FlexPai,然而在……99104,湖人遭逆转!詹姆斯致命失误,莫兰特41分爆发,奇12月30日上午9点,NBA常规赛,湖人客场对阵灰熊,比赛备受关注。第一节,亚当斯命中2分,霍华德助攻霍华德命中3分。贝恩进攻未果,蒙克出手三分不进。莫兰特跳投未果,霍华德出手……通化市首批100台新能源出租车投入运营11月15日,通化市举办一汽红旗新能源出租车投运仪式,首批100台新能源出租车投入运营。为深入贯彻落实国家碳达峰碳中和战略部署和我省旗E春城、旗动吉林工程,通化市积极推广……姚迪变美了!中国女排二传想继续打三届奥运会,蔡斌能等到她归来2022年8月15日是中国女排二传姚迪的生日。在这一天,姚迪开启了网络直播。在直播间与球迷畅聊一个多小时。回应了很多球迷关心的问题。而球迷则被视频里的姚迪惊艳到了,姚迪成为了名……麻辣小龙虾的详细做法小龙虾季节到了,在家正宗川味麻辣小龙虾的做法,步骤配方告诉你,麻辣过瘾,停不下嘴天气越来越热,又到了麻辣小龙虾的旺销季节了。晚上和三两好友坐在大排档,喝着冰镇啤酒,吮着小……
高压锅只要在喷汽了,不论大火小火,锅内温度都一样吗?煮的时间大火小火只要喷气,里面的压力是一样的,为了节能应改为小火,必免浪费。高压锅是利用锅内逐渐增多的水蒸气形成高压,使水的沸点提高,更高的温度能让食物更快煮熟。但为了安全,压力……iPhone14Plus确定7英寸大屏,采用三星面板,意在强距离新iPhone14系列的发布已经不足两个月,因为iPhone的强大影响力,所以在新机要发布之前的一两个月预热消息都非常多。在统筹了各方面爆料之后,今天要给大家揭开iPhon……小米翻盖折叠屏智能手机专利曝光可折叠智能手机是手机领域的新星。它们正在迅速发展。然而,由于生产困难和其他因素,并不是所有的智能手机厂商都有能力生产这样的产品。但我们相信技术难点和成本问题很快就会解决。……5个技巧让家用美容仪的美白嫩肤效果事半功倍这两年家用美容仪很是小火了一段时间,对于皮肤胶原纤维和胶原再生有一定作用。但在这之前,你期待的胶原还没再生,表皮干燥、剥脱在热刺激的作用下却发生了。这时候该怎么办?首先,……数读广汽8月产销快报自主品牌表现亮眼,新能源汽车暴增超130文:懂车帝原创李帅飞〔懂车帝原创行业〕9月5日,广汽集团发布了最新的8月份产销快报。其中显示,8月份广汽集团汽车产量为21。93万辆,同比增长了86。82;8月份的汽车销……如何做正宗的芋头扣肉?芋头扣肉向来是一道很受欢迎的菜,软糯酥嫩,肥而不腻。尽管当下人们提倡低脂肪摄入的饮食习惯,但也阻挡不了对芋头扣肉的喜爱。芋头扣肉做法跟梅菜扣肉很相似,做法也不复杂,家里就可以做……妈妈的油纸伞记得小时候!家里有一把油纸伞,伞杆是竹子做的,伞冠是红色的,什么时候到的我们家,无从知晓。我清晰的记得,每当下雨天,我上学放学的路上,妈妈就会撑着这把伞,护送我上学放学,……为什么江西菜美味可口名气却不大,而湘川菜却入选八大菜系?江西是农业省,缺乏商业因素。所谓几大菜系都是商业推广的成果。江西饮食的特色是简单,没有那么多调料,影响了食品推广。比如,做菜要加油盐,江西也加,但是,不会有其它菜系的多种调味混……消息称摩根大通在亚太投资银行部门裁员约30人据知情人士透露,在自己亚洲最大增长市场的交易数量难以反弹的情况下,摩根大通正在亚太区削减大约30位投资银行家,以驻大中华地区的银行家为主。知情人士称,摩根大通这次削减香港……中国电竞将占全球市场收益近13京东海量电竞组装装备提升电竞体不久前,知名数据分析机构Newzoo发布《2022电竞市场报告》称,全球电子竞技产业将在2022年末创造近13。8亿美元的营收,中国市场将贡献全球电竞市场收益的近13。近年来,……贵州的粉,你都吃过哪些?千层粉千层粉被思南当地人叫做牵肠粉,而且还有一段写在美食里的爱情故事:以前居住在乌江沿岸的百姓,多靠走船为生。开春了,驾长们又开始走船。有个新婚不久的年轻驾长沉迷在……广东人餐桌上的龙须菜是一种什么菜?它是如何培育出来的呢?广东人餐桌上的龙须菜,其实就是荷兰豆的嫩梢,也就是我们常见的豌豆苗嫩尖,也叫豌豆尖。它清甜鲜嫩,是炒食和做汤不可少得的优质鲜菜。荷兰豆适合在比较凉爽的季节和环境中栽培,露……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网