You have at least three options, depending on how extensive your demands are:
- There is a filter towards the end of
wp_nav_menu
that lets you change the function’s output. If the menu is fixed you could use this to do a simple find and replace on the html-string. This is an easy solution, but if you change your menu, you have to change the function. - A bit more complicated is replacing the whole generation process of
wp_nav_menu
with a custom walker that generates the data-elements from information you can pull out of existing information from the admin menu page. This is what you seem to have in mind. - The most complicated approach would be to add a metabox to the admin menu page, which would allow you to add different data-items for every menu item. You would then still need a walker function as well. Probably not worth the effort.