针对移动应用程序中可访问性问题的自动代码修复建议

可访问性对于包容性应用程序可用性至关重要,但由于缺乏意识、专业知识和工具不足,开发人员经常难以识别和修复应用程序可访问性问题。当前的可访问性测试工具可以识别可访问性问题,但可能并不总是提供如何解决这些问题的指导。我们推出了 FixAlly,这是一种自动化工具,旨在针对自动可访问性扫描器检测到的可访问性问题建议源代码修复。FixAlly 采用多代理 LLM 架构来生成修复策略、在源代码中定位问题并提出代码……

来源:Apple机器学习研究

可访问性对于包容性应用程序可用性至关重要,但是由于缺乏意识,专业知识和工具不足,开发人员经常难以识别和修复应用程序可访问性问题。当前的可访问性测试工具可以识别可访问性问题,但可能并不总是提供有关如何解决问题的指导。我们介绍Fix,这是一种自动化工具,旨在建议源代码修复自动可访问性扫描仪检测到的可访问性问题。 FIXElly使用多代理LLM体系结构来生成修复策略,将问题定位在源代码中,并提出代码修改建议以解决可访问性问题。我们的实证研究表明,在提出解决问题的解决方案方面,可以通过可访问性扫描仪发现的问题,在生成合理的修复建议方面的有效性为77%,而我们对12个iOS开发人员的调查发现,他们愿意接受69.4%的评估修复建议。

Figure 1: FixAlly's approach, consisting of 1) Data Processing which instruments the application and navigates to various screens via GUI tests to capture accessibility scans and screenshots, 2) Suggestion Generation which uses a multi-agent LLM architecture to generate fix suggestions for each detected issue from the input screenshot, source code, and issue descriptions, and 3) Suggestion Assessment which captures a new accessibility scan of the patched app and GUI屏幕并将其与先前的报告进行比较,以确定修复建议是否解决了问题。
数据处理 建议生成 建议评估
图2:给定一个屏幕截图突出显示目标的UI元素,FIX可以在SwiftUI中定位代码以定位代码。
图3:Fixally生成的示例代码建议,该建议调整文本以与背景高度对比以满足WCAG标准。