TPE DOM/Date time input types

From MozillaWiki
Jump to: navigation, search

Introduction

This project is to enable the feature on Desktop that HTML input fields should contain a date or time or allow users to select a week in a year.

The project aims to provide basic input/pickers (date, month, time, date time, and week) for web authors and at the same time to meet HTML standard criteria including "Step", and "Max/Min".

Other than the functions listed above, the project shall also take care of localization (incl. the different format per locale) and accessibility (Input = Cursor Only, Cursor+Keyboard, or Keyboard only).

Last but not least, as per the current scope, only Gregorian calendar is considered.

References

Note

Features landed on master will be pref-off, if the l10n integration is not done yet for that specific picker. Once it gets l10n part done, we will pref-on it on nightly /developer-edition.

Main Members

Product manager: Joe Cheng

Engineering program manager: Wesley Huang

Engineers: Jessica Jong (platform: DOM/layout part), Scott Wu (front-end: xul element/html content)

UX designer: Morpheus Chen, Tina Hsieh

Visual designer: Helen Huang

Localization: Zbigniew Braniecki (Gandalf)


Softvision QA:

Project Manager: Rares Bologa

QA members: Brindusa Tot, Simona Badau, Roxana Leitan

Roadmap

  • Public Trello board
  • Aligned living schedule available in google sheet (permission required as it's more for internal tracking)
  • High-level overview of date time input status on Firefox Desktop
Time Input Date Input Month Input Week Input Date Time Input
Basic input field (MVP) Firefox 52 pref-off, 57 pref-on Firefox 53 pref-off, 57 pref-on backlog backlog backlog
Pop-up picker (MVP) Firefox 52 pref-off; de-scoped Firefox 53 pref-off, 57 pref-on backlog backlog backlog
Input field with STEP (displaying warning message when out of range) Firefox 53 pref-off, 57 pref-on Firefox 53 pref-off, 57 pref-on backlog backlog backlog
Input field with Min/Max (displaying warning message when out of range) Firefox 53 pref-off, 57 pref-on Firefox 53 pref-off, 57 pref-on backlog backlog backlog
Picker with STEP N/A Firefox 56 pref-off, 57 pref-on backlog backlog backlog
Picker with Min/Max N/A Firefox 56 pref-off, 57 pref-on backlog backlog backlog
Input field l10n integration (incl. RTL) Firefox 55 pref-off, 57 pref-on Firefox 56 pref-off, 57 pref-on backlog backlog backlog
Picker l10n integration (incl. RTL) N/A Firefox 56 pref-off, 57 pref-on backlog backlog backlog
Input field with keyboard navigation Firefox 52 pref-off, 57 pref-on Firefox 53 pref-off, 57 pref-on backlog backlog backlog
Picker with keyboard navigation N/A Backlog backlog backlog backlog
Input field a11y integration Backlog Backlog backlog backlog backlog
Picker a11y integration N/A Backlog backlog backlog backlog
List and autocomplete attributes Backlog Backlog backlog backlog backlog

Project Dashboard

Project status on Meeting minutes

Bug Priority Tagging

  • P1 - Fix in the current release or iteration
    • Major issues those in which a large number of users will be impacted, or a smaller number of users will be significantly impacted
    • Major identifiable regressions
    • Non-localizable strings
    • Top Crashes
    • sec-high, sec-critical security bugs
    • Data loss
  • P2 - Fix in the next release or iteration
    • Enhancements/features we surely want in the next release
    • Non-critical string changes (due to l10n)
  • P3 - Backlog
    • Polish and other minor issues
    • Other new features
  • P4 - None. We're not using this
  • P5 - Will not fix, but will accept a patch

Meta Bugs

  • Project meta
ID Summary Priority Status
888320 [meta] implement all time and date related input types -- NEW

1 Total; 1 Open (100%); 0 Resolved (0%); 0 Verified (0%);

  • Meta bug for defects tracking
ID Summary Priority Status
1323674 [meta] defects in date time input types -- NEW

1 Total; 1 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Ship Bugs

ID Summary Status Target milestone Resolution Assigned to Depends on Blocks
1069609 [UX] Provide specs for desktop layout of date/time inputs NEW --- Morpheus Chen [:morpheus] UX 888320, 1283381
1278185 Implement valueAsNumber and valueAsDate for <input type=month> RESOLVED mozilla50 FIXED Jessica Jong [:jessica] 888324
1278186 Implement valueAsNumber and valueAsDate for <input type=week> RESOLVED mozilla52 FIXED Jessica Jong [:jessica] 888316
1278191 Implement the value sanitizing algorithm for <input type=month> RESOLVED mozilla50 FIXED Jessica Jong [:jessica] 888324
1278192 Implement the value sanitizing algorithm for <input type=week> RESOLVED mozilla51 FIXED Jessica Jong [:jessica] 888316
1278737 Add 'month' to the list of valid types attributes for <input> RESOLVED mozilla50 FIXED Jessica Jong [:jessica] 888324
1278738 Add 'week' to the list of valid types attributes for <input> RESOLVED mozilla51 FIXED Jessica Jong [:jessica] 888316
1283022 Implement the min and max attribute for <input type=month> RESOLVED mozilla50 FIXED Jessica Jong [:jessica] 888324
1283023 Implement the step attribute for <input type=month> RESOLVED mozilla51 FIXED Jessica Jong [:jessica] 888324
1286182 Implement the layout for <input type=date> RESOLVED mozilla53 FIXED Jessica Jong [:jessica] 888320, 1320225, 1320227
1288591 Implement the layout for <input type=time> RESOLVED mozilla52 FIXED Jessica Jong [:jessica] 1406461, 1311857 888320, 1301295, 1301304, 1301308, 1310831, 1283384, 1301306, 1301310, 1301312, 1309457, 1310587, 1310823, 1314542, 1314544
1289272 Consider changing the implementation of step attribute for input type=date RESOLVED mozilla50 FIXED Jessica Jong [:jessica] 888320
1295402 Implement the min and max attribute for <input type=week> RESOLVED mozilla52 FIXED Jessica Jong [:jessica] 888316
1295403 Implement the step attribute for <input type=week> RESOLVED mozilla52 FIXED Jessica Jong [:jessica] 888316
1301306 [DateTimeInput] blur/focus events triggered when moving through inner text boxes RESOLVED mozilla52 FIXED Jessica Jong [:jessica] 1288591 888320
1301310 [DateTimeInput] picker gets hidden/shown when clicking through inner text boxes RESOLVED mozilla55 FIXED Jessica Jong [:jessica] 1288591 888320
1301312 [DateTimeInput] localization for <input type=time> input box RESOLVED mozilla55 FIXED Jessica Jong [:jessica] 1288591, 1341994 888320
1310076 Add 'datetime-local' to the list of valid types attributes for <input> RESOLVED mozilla52 FIXED Jessica Jong [:jessica] 888331
1310077 Implement the value sanitizing algorithm for <input type=datetime-local> RESOLVED mozilla52 FIXED Jessica Jong [:jessica] 888331, 1325009
1310078 Implement valueAsNumber and valueAsDate for <input type=datetime-local> RESOLVED mozilla53 FIXED Jessica Jong [:jessica] 888331
1310079 Implement the min and max attribute for <input type=datetime-local> RESOLVED mozilla53 FIXED Jessica Jong [:jessica] 888331
1310080 Implement the step attribute for <input type=datetime-local> RESOLVED mozilla54 FIXED Jessica Jong [:jessica] 888331
1310587 [DateTimeInput] make background of reset button in input box transparent RESOLVED mozilla52 FIXED Jessica Jong [:jessica] 1288591 888320, 1312975
1314542 [DateTimeInput] input field cleared unexpectedly when using up/down keys RESOLVED mozilla52 FIXED Jessica Jong [:jessica] 1288591 888320
1314544 [DateTimeInput] browser keyboard shortcut does not work when focus is on input box RESOLVED mozilla53 FIXED Jessica Jong [:jessica] 1288591 888320
1320225 [DateTimeInput] Integration of input type=date input box with picker RESOLVED mozilla53 FIXED Jessica Jong [:jessica] 1286182 888320, 1328219
1320227 [DateTimeInput] localization for <input type=date> input box RESOLVED mozilla55 FIXED Jessica Jong [:jessica] 1286182, 1332266 888320
1337234 Add new webAPIs for XBL in child to get calendar terms RESOLVED --- FIXED Jessica Jong [:jessica] 1287677, 1341994, 1346084 888320, 1340396
1344642 Redefine date/time input related preferences RESOLVED mozilla55 FIXED Jessica Jong [:jessica] 888320
1346085 [DateTimeInput] (l10n) RTL support for <input type=time> input box RESOLVED mozilla55 FIXED Jessica Jong [:jessica] 1376050, 1346084 888320
1347069 [DateTimeInput] (l10n) 12/24hr format for <input type=time> based on locale RESOLVED mozilla55 FIXED Jessica Jong [:jessica] 888320

31 Total; 1 Open (3.23%); 30 Resolved (96.77%); 0 Verified (0%);


Open Issues

Issue Description Status Comments/Corresponding Action
Metrics integration before rolling out to release channel Planning


Issues DONE

Issue Description Status Comments/Corresponding Action
Identify scope Bug 1280654 and owner CLDR access needed for both front-end and platform module DONE Discuss on bug 1280654; Target by Aug/M.
Front-end architecture plan Identify front-end reviewer and get architecture plan reviewed DONE
Layout architecture plan Identify layout reviewer and get architecture plan reviewed DONE
UX spec lock-down Get sign-off in the critique DONE https://mozilla.invisionapp.com/share/237UTNHS8#/screens/171579739
Project master schedule (Proposal) proposal for 2016H2 DONE Living schedule for 20162H available in https://goo.gl/wwLYf3 (permission required)
Project master schedule master plan sign off DONE
Determine locale for the date/time Options: 1. Browser UI locale 2. User preferred locale DONE decision changed to (1). Reason: it's part of the browser UI and as such it should stay consistent with browser similarly to how file opening UI, printing UI etc. stays. It interacts with the website, but it's part of the application.
Does the feature need to support non-E10s ? single process mode DONE Yes. Necessary.
Moving advanced functions of time picker to later phase 1. Follow-up bugs creation 2. Schedule in the master plan DONE front-end : 1301281 1301284 1301302

Platform: 1301295 1301304 1301306 1301308 1301310 1301312 Shall add/schedule these to section #5 of the master plan in the workshop (Schedule revisiting will be the tasks after retrospect)

Working model with 3rd party QA and revisit QA plan in our master plan Done Synced with SV during the week of Sep12. Now we have test plan (https://wiki.mozilla.org/QA/DateTimeInputTypes) and test cases draft
Revisit master schedule Based on our learning of time picker MVP, the current master plan is way too optimistic. Let's alter after time picker MVP landed Done Latest update on https://goo.gl/wwLYf3 (permission required). In short, next milestone is targeting on landing date picker MVP (w/o) l10n before firefox53 branches to aurora. Still pref-off for its purpose is not for direct end user to try at that moment.
Do we need keyboard navigation on all the pickers? This is mostly for a11y. Input field already supports the keys (up/down) to increment or decrement. Maybe only for date picker is good enough. Done 2nd priority
Revisit pref on/off plan. We may want to roll out to beta/release incrementally, w/o having all types ready. Done Release date and time types as these are the most common ones
Decision on descoping month picker Similar reason as to time picker Done 2nd priority