Giter Site home page Giter Site logo

wesleybranton / digital-eye-strain-prevention-tool Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 2.0 515 KB

Prevent permanent damage to your eyes while browsing the web with this tool.

Home Page: https://addons.mozilla.org/firefox/addon/eye-strain-prevention-tool/

License: Mozilla Public License 2.0

JavaScript 38.56% HTML 16.61% CSS 44.83%
firefox firefox-addon firefox-extension firefox-webextension hacktoberfest webextension

digital-eye-strain-prevention-tool's Introduction

digital-eye-strain-prevention-tool's People

Contributors

wesleybranton avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

tommakes

digital-eye-strain-prevention-tool's Issues

Improve alarm validation

I strongly dislike the workaround implemented to correct inconsistencies with the Alarms API. To avoid missed alarms, the add-on runs an alarm check every time the browser detects a change in any tab. This works, but fires way too often.

In an ideal world, we could trust that the Alarms API will fire when it's supposed to and would not need validation at all. Sadly, history has proven this will not be the case.

However, there has to be a better approach than spamming the validation check tens of times per minute.

Revamp UI

The UI is dated and should be updated.

Provide option for non-intrusive notifications

Add the option for users to be notified via a browser notification. This will work better to allow users to finish tasks before taking a break, rather than disturbing the user experience.

Translate add-on

Currently, this add-on is available in English only, but it does have the ability to be translated into other languages.

To translate the add-on, copy the messages.json file from the firefox/_locales/en folder to firefox/_locales/LANGUAGE_YOU_ARE_TRANSLATING. Translate the messages in the JSON file to your language. These can then be submitted via a pull request.

Any language is welcome.

Collect general feedback

User should be able to send feedback about the add-on at any time. This will help to detect issues with the add-on or potential improvements that can be made.

Change add-on name

The current add-on name is too long and not very good. The add-on should be rebranded under a newer, better name. Suggestions are welcome.

Remove flashing screen when time is complete

The flashing black and white screen to notify the user when the 20 second countdown is complete may be harmful for the eyes, especially in low-light conditions. Replace the flashing screen with less extreme colour alternation.

Use flashing browserAction as a notifcation option

Add a third notification mode to add-on that uses a browserAction button on the user's toolbar to tell the user when it's time to do the exercise. The icon should be a greyscale image and then change to a flashing GIF icon when it's time.

Browser action icons too large

AMO shows a warning message when uploading a new version that says the browser action icon should be 32px, but is actually 96px. The icon should be scaled down.

Improve the first launch and update pages

The design of the first launch and update pages that display should be optimized and improved. The current design is not great and more information and potentially other eye-care tips can be added to the page.

Update for WCAG 2.2 compliance

In an effort to make the content of the internet more accessible to everyone, all of my repositories will be reviewed to ensure that they fulfil the WCAG 2.2 requirements. This will take time. The current goal is to make all projects comply with level AA, including as many level AAA standards as possible.

Items that are bold are new to WCAG 2.2. Items that do not apply to the project will be marked as completed and marked with a strikethrough.

Guideline 1.1 – Text Alternatives

  • 1.1.1 - Non-text Content (A)

Guideline 1.2 – Time-based Media

  • 1.2.1 - Audio-only and Video-only (Prerecorded) (A)
  • 1.2.2 - Captions (Prerecorded) (A)
  • 1.2.3 - Audio Description or Media Alternative (Prerecorded) (A)
  • 1.2.4 - Captions (Live) (AA)
  • 1.2.5 - Audio Description (Prerecorded) (AA)
  • 1.2.6 - Sign Language (Prerecorded) (AAA)
  • 1.2.7 - Extended Audio Description (Prerecorded) (AAA)
  • 1.2.8 - Media Alternative (Prerecorded) (AAA)
  • 1.2.9 - Audio-only (Live) (AAA)

Guideline 1.3 – Adaptable

  • 1.3.1 - Info and Relationships (A)
  • 1.3.2 - Meaningful Sequence (A)
  • 1.3.3 - Sensory Characteristics (A)
  • 1.3.4 - Orientation (AA)
  • 1.3.5 - Identify Input Purpose (AA)
  • 1.3.6 - Identify Purpose (AAA)

Guideline 1.4 – Distinguishable

  • 1.4.1 - Use of Color (A)
  • 1.4.2 - Audio Control (A)
  • 1.4.3 - Contrast (Minimum) (AA)
  • 1.4.4 - Resize text (AA)
  • 1.4.5 - Images of Text (AA)
  • 1.4.6 - Contrast (Enhanced) (AAA)
  • 1.4.7 - Low or No Background Audio (AAA)
  • 1.4.8 - Visual Presentation (AAA)
  • 1.4.9 - Images of Text (No Exception) (AAA)
  • 1.4.10 - Reflow (AA)
  • 1.4.11 - Non-text Contrast (AA)
  • 1.4.12 - Text Spacing (AA)
  • 1.4.13 - Content on Hover or Focus (AA)

Guideline 2.1 – Keyboard Accessible

  • 2.1.1 - Keyboard (A)
  • 2.1.2 - No Keyboard Trap (A)
  • 2.1.3 - Keyboard (No Exception) (AAA)
  • 2.1.4 - Character Key Shortcuts (A)

Guideline 2.2 – Enough Time

  • 2.2.1 - Timing Adjustable (A)
  • 2.2.2 - Pause, Stop, Hide (A)
  • 2.2.3 - No Timing (AAA)
  • 2.2.4 - Interruptions (AAA)
  • 2.2.5 - Re-authenticating (AAA)
  • 2.2.6 - Timeouts (AAA)

Guideline 2.3 – Seizures and Physical Reactions

  • 2.3.1 - Three Flashes or Below Threshold (A)
  • 2.3.2 - Three Flashes (AAA)
  • 2.3.3 - Animation from Interactions (AAA)

Guideline 2.4 – Navigable

  • 2.4.1 - Bypass Blocks (A)
  • 2.4.2 - Page Titled (A)
  • 2.4.3 - Focus Order (A)
  • 2.4.4 - Link Purpose (In Context) (A)
  • 2.4.5 - Multiple Ways (AA)
  • 2.4.6 - Headings and Labels (AA)
  • 2.4.7 - Focus Visible (AA)
  • 2.4.8 - Location (AAA)
  • 2.4.9 - Link Purpose (Link Only) (AAA)
  • 2.4.10 - Section Headings (AAA)
  • 2.4.11- Focus Appearance (Minimum) (AA)
  • 2.4.12 - Focus Appearance (Enhanced) (AAA)
  • 2.4.13 - Fixed Reference Points (A)

Guideline 2.5 – Input Modalities

  • 2.5.1 - Pointer Gestures (A)
  • 2.5.2 - Pointer Cancellation (A)
  • 2.5.3 - Label in Name (A)
  • 2.5.4 - Motion Actuation (A)
  • 2.5.5 - Target Size (AAA)
  • 2.5.6 - Concurrent Input Mechanisms (AAA)
  • 2.5.7 - Dragging (AA)
  • 2.5.8 - Pointer Target Spacing (AA)

Guideline 3.1 – Readable

  • 3.1.1 - Language of Page (A)
  • 3.1.2 - Language of Parts (AA)
  • 3.1.3 - Unusual Words (AAA)
  • 3.1.4 - Abbreviations (AAA)
  • 3.1.5 - Reading Level (AAA)
  • 3.1.6 - Pronunciation (AAA)

Guideline 3.2 – Predictable

  • 3.2.1 - On Focus (A)
  • 3.2.2 - On Input (A)
  • 3.2.3 - Consistent Navigation (AA)
  • 3.2.4 - Consistent Identification (AA)
  • 3.2.5 - Change on Request (AAA)
  • 3.2.6 - Findable Help (A)
  • 3.2.7 - Hidden Controls (AA)

Guideline 3.3 – Input Assistance

  • 3.3.1 - Error Identification (A)
  • 3.3.2 - Labels or Instructions (A)
  • 3.3.3 - Error Suggestion (AA)
  • 3.3.4 - Error Prevention (Legal, Financial, Data) (AA)
  • 3.3.5 - Help (AAA)
  • 3.3.6 - Error Prevention (All) (AAA)
  • 3.3.7 - Accessible Authentication (A)
  • 3.3.8 - Redundant Entry (A)

Guideline 4.1 – Compatible

  • 4.1.1 - Parsing (A)
  • 4.1.2 - Name, Role, Value (A)
  • 4.1.3 - Status Messages (A)

Collect feedback on uninstall

When a user uninstalls the add-on, they should be asked to complete an optional feedback survey in a new tab. This will help to find issues or areas where the add-on could improve.

Improve browserAction icons

Currently, different statuses are indicated using a combination of badges and icons changes. All of the status indicators should be consolidated into the browserAction icon. Each status should use the following icons:

  • Active without a pending activity: This can stay as an updated version of the same icon, which is a faded eye.
  • Active with a pending activity: This should either be a flashing icon (as it is now) or a bouncing icon. Both will need to be tested to see which is better. Also, there should be a blue circle in the top-right.
  • Inactive due to manual: This should be a version of the first icon but with a red line through it.
  • Inactive due to quiet time: This should be the same as the version above, but with a clock icon in the buttom-right (or top-right) to indicate that it's a timed event.

Add support for localization

The add-on can easily be set up to support i18n. Although the add-on is unlikely to be translated any time in the foreseeable future, it can be if someone is willing to.

Improve timer reliability

The timer reliability should be improved by running some code to verify the integrity of the the Alarms API that is set. This can be implemented similar to the Grandfather Fox add-on, which runs on every webNavigation event. However, using the Tabs API may be a better approach.

Allow users to delay activity

The users should be allowed to delay the activity and regain access to their browser. This will allow users to do things like pause videos and/or audio before participating in the exercise.

Improve browserAction popup

Currently, clicking the browserAction button opens the main popup. It would be nice if the browserAction popup had a smaller popup that allowed the user to either start the activity or postpone in for X number of minutes.

Sample mockup:
despt - popup mockup

When there is no pending activity, the user should be able to temporarily disable the add-on from the popup instead of having to go to the settings page.

Display introduction message on first install

A web message should be displayed when the user first installs the extension. This message can be used to thank the user for downloading the extension and explain more about what the extension does.

This page could also be used to promote the Github repository for issue reporting and to ask for rating or donations.

Timer function does not work if window is not interacted with

According to user reports, the timer function will not trigger again (or consistently) of the user ignores the popup window.

For example, if the user is viewing a fullscreen video, the popup will appear in the background and never be triggered again.

Add chime sound

Currently, the Notification API will not appear when a user is in a fullscreen video. Additionally, the user cannot see a flashing browserAction if they are in fullscreen or if the browser is minimized. It may also be difficult to notice the browserAction icon if the user is not paying attention.

To solve this, a chime sound should be added to the add-on that will play when the Alarm API fires. This chime should be optional and can be toggled using the options. Potentially, a volume slider should be added to the options and the possibility of adding a repetitive chime can be explored.

Allow users to temporarily disable until Firefox is restarted

The users should have the option (via the options UI) to temporarily disable future popups until the browser is restarted. This is good for gamers who may leave Firefox running in the background or for people who are working on a task and don't want to be interrupted.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.