Add support for custom attributes to all widgets

This commit adds support for custom attributes to all widgets. Tests are there as well.

Please note that I rewrote the data attribute regex tests in order to not expose the `getDataRegExp` and `getAriaRegExp` functions.

Cheers,
Patrick