Short answer – it depends. Mostly on your user-base. If you are sure that all your users use latest browsers then I would say test and go for it. If you are not certain – maybe think it over a bit. Potentially use native dialog but supplement it with polyfill for all browsers that don’t support it yet.
I love the first rule of ARIA – don’t use ARIA. If you can use an native HTML element that can do the job well, of course. And making accessible dialogs is not easy. If you don’t believe me please check what veterans like Adrian Roselli have to say about dialogs (opens in new window). But I really love the idea of native dialog that can be used with minimal JavaScript and even supports styling quite decently.
It seems that browser support is looking good, but as mentioned not everybody can or want use the latest browsers. Adrian made me remember of my old iPad that is still working well but will never get new updates. So I am actually still using it from time to time, but with it I can’t really use the native HTML dialog as it’s Safari support is just recent.
At the same time there are still some that are forced to use Internet Explorer (IE). As much as I would want it to disappear from our analytics it seems like it is still used a bit. Just enough that we may have to think about it even today when it’s officially out of support. In these harsh times we must also think about people with older hardware and software that are maybe stucked with it. Some of them are maybe also stucked with old versions of JAWS screen-readers that works best with IE.
That’s why it depends so much – it depends on your website or web application, it depends on your user base. If you can trust your analytics (we should remember that faking user agents is a trivial task and data is not to be trusted entirely) then go and check the trends. Drill in and find if you can afford it. Or at least make the use of a polyfill that works – last time I checked GoogleChrome dialog-polyfill (opens in new window) with my latest Internet Explorer (version 11, reporting user agent as Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
) it failed colossally! I didn’t debug it but it seems that their official demo has issues with JavaScript on latest IE11. A very bad sign.
So what is my advice for now? I guess that in controlled environment, where you are sure about user-base you could go with native dialog, provided you really test it with different users. Before all that I suggest that you invest some time and read Scott’s GitHub wiki on “dialog initial focus, a proposal” (opens in new window) as well. As far as I could test it was working well, but as always – you need to verify it for yourself.
In an uncontrolled environment I would still use a verified, ARIA made pattern (or if you can verify that polyfill is working). Kitty Giraudel’s a11y-dialog (opens in new window) seems to be extendable enough and what is also important – tested enough. But you would still be wise to re-test it when implemented in your solution.
So conclusion for the most of us is that it’s too early now. Although “don’t use ARIA if there is a native HTML element” is the golden rule we are still stucked, at least most of us, with using ARIA instead of native. For now.