{"id":1552,"date":"2020-04-04T00:00:00","date_gmt":"2020-04-03T22:00:00","guid":{"rendered":"https:\/\/www.neovita.com\/thoughts\/?p=1552"},"modified":"2020-04-13T02:44:28","modified_gmt":"2020-04-13T00:44:28","slug":"interaction-design-the-date-range-picker","status":"publish","type":"post","link":"https:\/\/www.oninteractions.com\/thoughts\/interaction-design-the-date-range-picker\/","title":{"rendered":"Interaction design: The\u00a0date range picker"},"content":{"rendered":"\n<p class=\"wp-block-neo-blocks-preamble\">Unfortunately the standard browser interface for choosing dates is really confusing. To reduce the effort of using some Springer Nature forms, I needed to create a custom date range picker.<\/p>\n\n\n\n<p>My team at Springer Nature builds tools for librarians, primarily via the <a rel=\"noreferrer noopener\" href=\"https:\/\/librarian.springernature.com\/\" target=\"_blank\">Librarian Portal<\/a> (&#8220;SNAP&#8221;) and <a rel=\"noreferrer noopener\" href=\"https:\/\/adminportal.springernature.com\/metadata\/books\" target=\"_blank\">Metadata Downloader<\/a>. Librarians download usage reports in the &#8220;COUNTER&#8221; format via one of the tools, and they need to choose which date range the report should be for \u2013 \u201cJanuary 2018 to March 2019\u201d for example.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Problems with how librarians choose date range today<\/h2>\n\n\n\n<p>In SNAP we use two month fields to let librarians choose a date range:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"512\" src=\"https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-range-picker-chrome-2-1024x512.png\" alt=\"\" class=\"wp-image-1607\" srcset=\"https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-range-picker-chrome-2-1024x512.png 1024w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-range-picker-chrome-2-600x300.png 600w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-range-picker-chrome-2-768x384.png 768w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-range-picker-chrome-2.png 1040w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Month field and calendar to select month in the Chrome browser<\/figcaption><\/figure>\n\n\n\n<p>This solution is great for us \u2013 we just tell the browser that we want the user to choose a specific month, and the browser does the rest. Unfortunately only Chrome shows a calendar to select from. In <a rel=\"noreferrer noopener\" href=\"https:\/\/caniuse.com\/#search=input%3A%20type%3D%22month%22\" target=\"_blank\">other browsers<\/a> librarians need to write the month in text:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"512\" src=\"https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-range-picker-firefox-2-1024x512.png\" alt=\"\" class=\"wp-image-1608\" srcset=\"https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-range-picker-firefox-2-1024x512.png 1024w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-range-picker-firefox-2-600x300.png 600w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-range-picker-firefox-2-768x384.png 768w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-range-picker-firefox-2.png 1040w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Month field (note: no calendar) in the Firefox browser<\/figcaption><\/figure>\n\n\n\n<p>And, the calendar Chrome uses is really confusing to librarians. Actually I suspect that it&#8217;s confusing to everyone&#8230;<\/p>\n\n\n\n<p>An experience goal for SNAP is that <a href=\"https:\/\/www.oninteractions.com\/thoughts\/experience-vision-springer-nature\/\">low effort is needed to use it<\/a>. This date picker is not helping librarians be efficient. We need a different solution.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Let&#8217;s do some <a href=\"https:\/\/www.oninteractions.com\/thoughts\/human-centered-as-philosophy\/\">human-centered design<\/a> to solve the problems!<\/h2>\n\n\n\n<p>We created a little crew with me, two developers and a designer colleague. We started off by looking at how others let people select date ranges and found good examples:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"497\" src=\"https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-sas-1024x497.png\" alt=\"\" class=\"wp-image-1556\" srcset=\"https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-sas-1024x497.png 1024w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-sas-600x291.png 600w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-sas-768x373.png 768w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-sas-1536x746.png 1536w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-sas-2048x995.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Date picker on sas.se<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"257\" src=\"https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-google-analytics-1024x257.png\" alt=\"\" class=\"wp-image-1557\" srcset=\"https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-google-analytics-1024x257.png 1024w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-google-analytics-600x151.png 600w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-google-analytics-768x193.png 768w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-google-analytics.png 1456w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Date picker in Google Analytics<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"200\" src=\"https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-gov.uk_-3.png\" alt=\"\" class=\"wp-image-1603\" srcset=\"https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-gov.uk_-3.png 1000w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-gov.uk_-3-600x120.png 600w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-gov.uk_-3-768x154.png 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><figcaption>Date picker from <a href=\"https:\/\/design-system.service.gov.uk\/patterns\/dates\/\">the GOV.uk design system<\/a><\/figcaption><\/figure>\n\n\n\n<p>We got together, ideated wildly and came up with more than ten ways of selecting a range of dates. The ideas fell into a few themes and we spoke about those themes to understand complexity, accessibility, usability, etc of each. In the end we believed that the GOV.UK solution is the best \u2013 it\u2019s clear, simple to implement and instantly accessible.<\/p>\n\n\n\n<p>We liked a bonus idea as well: having \u201cquick links\u201d for common date ranges like \u201cyear to date\u201d, \u201clast year\u201d, etc. When clicking on the \u201clink\u201d the data fields will be automatically filled in.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Validate the prototype with librarians<\/h2>\n\n\n\n<p>I created a prototype for the new date range selector, showing how it would work in the COUNTER usage data download form:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"902\" height=\"1024\" src=\"https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-counter-form-with-new-month-range-input-1-902x1024.png\" alt=\"\" class=\"wp-image-1592\" srcset=\"https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-counter-form-with-new-month-range-input-1-902x1024.png 902w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-counter-form-with-new-month-range-input-1-529x600.png 529w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-counter-form-with-new-month-range-input-1-768x872.png 768w, https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker-counter-form-with-new-month-range-input-1.png 1000w\" sizes=\"auto, (max-width: 902px) 100vw, 902px\" \/><\/figure>\n\n\n\n<p class=\"list-heading\">I then used two methods to test if librarians understand the new design:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Video calls where librarians shared their screen and walked me through how they would use the form.<\/li><li>Emails where the librarian was asked to tell me in writing what they would put in each field in the form. I&#8217;d never done a usability test via email before, but for this specific interface it worked great \u2013 the responses I got back were very clear.<\/li><\/ul>\n\n\n\n<p>The usability tests showed that the new data range design works well. Librarians understand what to put in each field. One area was confusing though: the definition of the \u201cquick link\u201d words. \u201cYear to date\u201d means different things to different people. But the functionality of the links was appreciated by librarians. I will need to rethink the words!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Next steps<\/h2>\n\n\n\n<p>The next steps are to iterate on the words for the quick links and then to go from prototype to real code so we can get all librarians to use the new date range chooser. Based on their feedback we will see if it is as good as I believe it is.<\/p>\n\n\n\n<p class=\"wp-block-neo-blocks-conclusion\">It might not be the best solution in the Universe, but I truly believe that this new way to select a date range will make librarians more efficient.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Unfortunately the standard browser interface for choosing dates is really confusing. To reduce the effort of using some Springer Nature forms, I needed to create a custom date range picker.<\/p>\n","protected":false},"author":1,"featured_media":1562,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[23,10,19,7,12,15],"tags":[],"series":[40],"class_list":["post-1552","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-concept","category-critique","category-interaction-design","category-problem","category-prototypes","category-usability-tests","series-skills"],"acf":[],"jetpack_featured_media_url":"https:\/\/www.oninteractions.com\/thoughts\/wp\/wp-content\/uploads\/2020\/04\/interaction-design-date-picker.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.oninteractions.com\/thoughts\/wp-json\/wp\/v2\/posts\/1552","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.oninteractions.com\/thoughts\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.oninteractions.com\/thoughts\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.oninteractions.com\/thoughts\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.oninteractions.com\/thoughts\/wp-json\/wp\/v2\/comments?post=1552"}],"version-history":[{"count":44,"href":"https:\/\/www.oninteractions.com\/thoughts\/wp-json\/wp\/v2\/posts\/1552\/revisions"}],"predecessor-version":[{"id":1614,"href":"https:\/\/www.oninteractions.com\/thoughts\/wp-json\/wp\/v2\/posts\/1552\/revisions\/1614"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.oninteractions.com\/thoughts\/wp-json\/wp\/v2\/media\/1562"}],"wp:attachment":[{"href":"https:\/\/www.oninteractions.com\/thoughts\/wp-json\/wp\/v2\/media?parent=1552"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.oninteractions.com\/thoughts\/wp-json\/wp\/v2\/categories?post=1552"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.oninteractions.com\/thoughts\/wp-json\/wp\/v2\/tags?post=1552"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/www.oninteractions.com\/thoughts\/wp-json\/wp\/v2\/series?post=1552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}