It was developed, and is maintained, for helping and supporting developers, consultants, quality auditors or any other end user on their daily use/work. There are no hidden intents.
* Browser permissions: WCAG Contrast Checker accesses the HTML of the page that is currently displayed by the browser, either the content directly descended from the html tag, as well as the documents that are included by the use of iframes. For this reason, and also because it gives the user a set of options and preferences that can be saved (theme, panel position, type of analysis, error identification, etc.), it requires some specific permissions from the browser to work.
None of the permissions that the extension requires collect data from any website. They are required to perform the html analysis, give the user information about the html and the styles that it has applied to its elements, and give the user a set of options to define the way in which he/she wants to perform the analysis and how to show the results. There is no data collection from the contents and there is no data collection about the sites in which the user uses the extension. In addition, the extension does not perform any action while they are not in execution.
This is the list of browser permissions and the reasons why they are required:
* all_urls: This permission allows the extensions to work on any URL because it matches any URL that uses a permitted scheme
* activeTab: The activeTab permission grants temporary access to the site the user is on and allows the extension to use the "tabs" permission on the current tab. This permission displays no warning on installation. This is used by the extension to:
** Call tabs.executeScript and tabs.insertCSS on the current tab. The script execution is required to analyse the DOM and the insertion of CSS is required to style the panel and to highlight the elements (feature that the extensions have that consist on highlight the elements in the page when selecting their information in the panel)
** Get the URL and the title the tab via an API that returns a tabs.Tab object. The only reason for getting this information is to show to the user the html documents that he/she is watching and give the option to decide (by selecting it in a custom selector that shows their title) in which one the analysis must be performed.
* storage: Enables the extension to store and retrieve data in the browser (not in any remote place or server), and to listen for changes to stored items. This feature is used by the extension to save and retrieve the user preferences, like the panel disposition, theme, error warnings, etc.
* webNavigation: Add event listeners for the various stages of a navigation. A navigation consists of a frame in the browser transitioning from one URL to another, usually (but not always) in response to a user action like clicking a link or entering a URL in the location bar.