openstreetmap-ng
openstreetmap-ng copied to clipboard
Definition of supported browsers for OSM-NG
Context: Currently, OSM.org does not have a formalized policy on which browsers are officially supported, which may affect the user experience and platform maintenance. Additionally, we do not have open data on OSM.org usage that could inform a decision based on actual browser usage metrics.
Proposal: Adopt a browser support matrix similar to that of the Wikimedia Foundation, which classifies browsers into different support levels (A, C, X). This approach is based on a combination of technical compatibility and browser popularity, focusing on ensuring a suitable user experience for most visitors while optimizing development and maintenance efforts.
Suggested Support Matrix:
-
Grade A:
- Browsers that will receive the highest level of support.
- New functionality must be compatible with these browsers, ensuring a modern experience with graceful fallback for older versions.
- Examples: Latest stable versions of Chrome, Firefox, Safari, Edge.
-
Grade C:
- Browsers that will receive basic support, ensuring that the platform functions in a readable way and that key actions can be performed, but with no guarantees that all modern JavaScript features will be available.
- These browsers are rarely tested, and reported issues may be addressed with a mitigation that disables advanced features.
- Examples: Older versions of Chrome, Firefox, and less popular browsers like Opera, Vivaldi.
-
Grade X:
- All other browsers, including those that are less popular, derived from modern browsers, beta versions, or browsers that are no longer maintained.
- These browsers receive the basic layer (HTML only), and if they pass the JavaScript feature test, they may receive enhancements, but without guarantees.
- Examples: Browsers like Samsung Internet, UC Browser, and older versions that do not follow modern standards.
Justification: Adopting the Wikimedia matrix is practical, as they face similar challenges in terms of device and browser diversity accessing their platforms. Following this matrix will allow OSM.org to focus its development and QA resources on browsers that impact the majority of users, while still maintaining a basic level of accessibility for less common browsers.
Next Steps:
- Review and approve the proposal by the development and design team.
- Define an initial list of browsers for each support grade.
- Implement automated testing configurations to ensure that future updates remain compatible with the defined matrix.
- Communicate to users and external developers about the supported browsers, adjusting documentation and contribution guides accordingly.
Reference: Based on the Wikimedia Foundation's browser support matrix.
We use browserslist to define supported browsers, as seen in package.json.
Some tools integrate well with it and we can also get a complete list by running the bunx browserslist command.
Generally, the current target is to support browsers released within the 5 years window.
There is a unsupported_browser_middleware.py that will display a one-time and dismissible notice for known unsupported browser versions.