It depends on your reason that why you are indent to use 'role'.
The two primary reasons to use roles in your native semantic element is:
Reason 1. Overriding the role where no host language element is appropriate or, for various reasons, a less semantically appropriate element was used.
Example:
<a href="#" role="button" aria-label="Delete item 1">Delete</a>
In the above example, a link was used, even though the resulting functionality is more button-like than a navigation link.
Screen readers will hear this as a button (as opposed to a link), and you can use a CSS attribute selector to avoid class-itis and div-itis.
*[role="button"] {
/* style these a buttons w/o relying on a .button class */
}
Reson 2. Backing up a native element's role, to support browsers that implemented the ARIA role but haven't yet implemented the native element's role.
For example, the "main" role has been supported in browsers for many years, but it's a relatively recent addition to HTML5, so many browsers don't yet support the semantic for .
<main role="main">…</main>
This is technically redundant, but helps some users and doesn't harm any. In a few years, this technique will likely become unnecessary.
You can check the below link for more info...
Accessible Rich Internet Applications (WAI-ARIA) 1.0