-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enhance Calendar Component (events) #4976
Comments
We are currently working on additions to b-calendar, specifically to the The big hurdle we have now is dealing with accessibility (specifically for screen reader users) of the event information. Vuetify, while its event system for calendars visually looks nice, severely lacks accessibility (mainly because it is difficult), and screen reader users do not know that a particular date has an event (for example, enable ChromeVox in chrome or enable VoiceOver on MAC/IOS, and you will hear that the presence of events are not communicated to screen reader users). Once we have it figured out, events will be configurable via the |
Popovers and tooltips for certain dates/events will be difficult, due to the grid nature ( View style (day, week, month) is on the roadmap... but as with other features, requires additional accessibility handling to make sure the component is usable by all users.... and currently is a low priority due to the complexities needed to make it accessible (while trying to keep the component lightweight JS-wise) |
I need the hover text thing on a per-date basis, so I can show values which are specific to each date. It's not for mobile users so the accessibility thing isn't an issue. A slot which I can fill with whatever I want would be ideal. |
@phil-w accessibility means more than just mobile... keyboard only users (i.e. tab/arrow keys) can't trigger a hover, neither can screen reader users. |
It would be great to improve navigation. For now, there are only options prev month/year and next month/year. But what if I need to select date of birth, say, 31-10-1965? Do I need to click 55 times previous year button? So, need a button to show years, and button to show months. |
@m-demydiuk calendar supports keyboard navigation and repeating keys, which is a quick way of navigating through years. |
@tmorehouse but it is not obvious for users, and not user friendly. |
That is why there is the note that keyboard navigation is at the bottom of the calendar. |
@tmorehouse I just noticed this note. I tried to use it, but navigation with the keyboard is also bad. Just try to navigate to 1965 year with keyboard, and you will understand the pain that our old clients will feel. Of course, it is up to you what functionality should be implemented and I just want to suggest. For reference, you can take a look for other libraries, and maybe you will understand that this is really important :) |
https://vuetifyjs.com/en/components/date-pickers/#date-month-pickers |
Press and hold alt + PageUp. (which is standard for grid navigation in apps, and compliant web pages): https://bootstrap-vue.org/docs/components/calendar#accessibility Note: Vuetify's calendar is NOT accessible to screen reader users, nor does it support standard keyboard navigation, nor are any of the buttons properly labeled (prev/next month are just icons, no labels)... so it is not really a good comparison. it may look pretty, but if you are a non-sighted user you are screwed. There is a reason they haven't added accessibility to it, as adding in that support with the current interface cannot easily be done. |
Your calendar looks good! :) |
@tmorehouse I understand that a fancy implementation like vuetifyjs is no option, but I also believe that keyboard control on a web ui is rather uncommon. |
A year dropdown might be possible.... But the question is... how many entries should it display? 10? 20? +/-100? (the bigger the dropdown, the longer it takes to read out the options to a screen reader user). Or perhaps a number input for the year (with a go button)? |
why not make a configurable range? |
Should it be a range relative to the current displayed year (+/- XX), or a min-max range? |
I'd prefer min-max, since it gives most control, but both options would work. |
Perhaps if The other option is to add skip +/-10 year (decade) buttons (at either end of the current date navigation button toolbar) |
And just a note that WAI-ARIA compliant datepickers are keyboard navigable (we've followed the standard almost to a |
I think I like the decade button most. Huge dropdown lists are not very user friendly and a common DoB can be set with a few clicks. I am not saying that its not a good idea to make date pickers keyboard navigable, it's just that i believe the majority of users does not know about it and/or is not used to use anything else than their mouse :) |
OK... will see about adding in the decade buttons.. hopefully the 7 buttons total won't be too cramped... and will need to pick out some icons (perhaps the chevron-bar ones). |
Hello @tmorehouse , is it possible somehow to set defaults globally? I need to change the calendar week start day globally to Monday. Is it possible? |
Please, if this decision is already taken, at least make this optional. We wouldn't like to clutter the control with additional visual options. Please, consider the problem being tackled, instead of focusing on a poor solution:
What's the best way to do this? Use the keyboard to type "31-10-1965". Others need to copy-paste that from another page. Related note:
|
We have made an option where you can use your own input, and handle the parsing of date strings (see https://bootstrap-vue.org/docs/components/form-datepicker#button-only-mode). |
Thanks, but that's cumbersome, compared to It also loses the current nice display of a date, once chosen (in A nice solution would be #5087 . I'll also stop commenting on this thread, we can agree to disagree :) |
One can use the context event to get the formatted value of the date (the context event is there for that reason, amoungst others). Parsing dates is not easy without bringing in a third party time library (as a dependency for BootstrapVue) like moment.js or similar. The native Replacing the header with an input, as suggested, would remove the fancy formatted date string Also, the order of the YYYY-MM-DD also is dependent upon locale selected (i.e. MM-DD-YYYY, DD-MM-YYYY, etc, and separators used i.e. |
Only while editing the date. While users view the initial form (which might already have a date set) and after choosing the date, the fancy formatted date will be shown in
Agreed! But, leaving technical details aside, would you agree that having a free-form input available during date editing (per screenshot in #5087) would be a better user experience (UX) than decade back/forward controls? If so, I'll research some solutions on the technical issues that you raised, which make sense. |
The solution also has to be accessible, and not increasing the complexity it for screen reader users, the fancier it gets, the more difficult for accessibility. Then there would be the validation of the user date input (and the myriads of formats that could be typed). Seeing on formatted version but requiring a different format for entry is another issue. |
First I want to say thanks for adding the calendar and datepicker components (especially the button-only mode really helped me)
However, I'd love to see more functionality on the calendar component.
Is your feature request related to a problem? Please describe...
I need to create a calendar widget that is capable of displaying events
Describe the solution you'd like
I imagine a solution pretty much like the calendar component provided by vuetify
What do you think?
The text was updated successfully, but these errors were encountered: