$menuParameters = array(
    'echo' => false,
    'items_wrap' => '<nav>%3$s</nav>',
);
echo strip_tags(wp_nav_menu( $menuParameters ), '<a><nav>' );

Result:

<nav>
    <a href="...">...</a>
    <a href="...">...</a>
    <a href="...">...</a>
</nav>

Source: Remove LI Elements From Output of wp_nav_menu

HTML5 wp_nav_menu: The snippet’s story

This is how you build HTML5 navigation without lists in WordPress. I slightly changed the code I found on CSS-Tricks. I had to post this after today’s reading of “Navigation in Lists: To Be or Not To Be” by Chris Coyier.