By the UASG Technology Working Group
Since the Universal Acceptance Steering Group (UASG) was formed in 2015, it has focused on raising awareness of Universal Acceptance (UA) issues, providing support and measuring global progress on UA adoption. Activities like the UA Ambassador program and a sustained commitment to local outreach in strategic markets have helped the UASG successfully drive awareness, with organizations around the world beginning to take the necessary steps toward UA adoption.
As awareness has grown, so has the need to provide support around execution and measurement. That’s why, in partnership with Cofomo Inc., the UASG has published a new report UA-Readiness of Some Programming Language Libraries (UASG037), and accompanying PowerPoint presentation, which provides an evaluation of programming languages and libraries against UA compliance requirements.
Testing and reporting are important examples of the ways that the UASG has evolved from promoting awareness to encouraging solutions and remediation of UA issues. In addition to finding UA-readiness problems in existing technology, this project includes logging bug reports directly to the project maintainers (for example on GitHub, the largest repository of open-source code) and providing information on how to fix their issues. For some libraries, the bug fix was provided as a pull request to the maintainers. These examples demonstrate how companies can accomplish remediation.
This recent test is the third in a series that the UASG has conducted on programming languages and libraries; earlier results can be found in UASG018A. The earlier phases focused on 22 libraries and the Linux platform. This phase expands on the previous work by adding mobile platform libraries (Android and iOS) and PHP on the Linux and Windows platforms.
Here is a high-level summary of the results and key takeaways:
While native iOS apps like Mail and Safari demonstrated good compliance with Email Address Internationalization (EAI) and IDNA2008, Apple doesn’t provide libraries with the same level of acceptance for developers.
This suggests that Apple is aware of UA issues and does the necessary processing for its own applications, but has not yet pushed those changes to the developer libraries. iOS bug reports have been filed but no progress has been shown so far.
PHP on Windows and Linux
For Windows and Linux, UA compliance for PHP is generally good while libraries brought the right support for IDNA2008 or EAI. However, while Microsoft supports IDNA2008 in its core .NET framework, as discovered in earlier testing phases, older Windows API that may be used by PHP libraries did not get support for IDNA2008; therefore, those libraries are not UA-compliant.
Most bug reports got answered by developers, and some fixes provided in this testing and bug reporting phase were included and released by the library maintainers, increasing their UA compliance level.
Most tested IDNA related libraries are using the same base code, so the results are quite similar, except for one of the tested libraries that is not UA-compliant. Google seems to keep its software on the old IDNA version and Android does not make an exception. The base code for HTTP on Android is IDNA2003 compliant only; consequently, none of the tested libraries are IDNA2008 compliant.
As for EAI-related libraries, they offer a good level of compliance; however, most developers will use a specific Android feature that triggers user applications to send emails, hence EAI compliance is tied to those applications.
Several discussions on the bug report threads were answered; one library is currently in the process of fixing an issue with material that was provided during this reporting phase.
The IDNA-related problem shared by most libraries is still in the pending state, however. Google has not yet responded to the bug report, and the maintainer of the library used in the Android base code has not upgraded the IDNA version in the library.
The bug reports submitted to address these issues can be found here.
For complete results, including methodology, the tested languages and libraries, conformance level of the libraries, bug reports, and recommendations for developers, view the full UASG037 report. Additionally, the GitHub repository containing code samples showing how to use certain programming languages libraries correctly to support internationalization, specifically EAI and Internationalized Domain Names (IDNA2008), can be found here.
The UASG hopes that this will be a helpful resource for organizations looking for guidance on UA remediation. For more information about the UASG and ways you can get involved, visit https://uasg.tech/ and follow the UASG on social media (Twitter, Facebook, and LinkedIn).