Tabs are bad. Google counts content in closed tabs with less relevance, so only the content in your first, initially opened tab will be counted with 100% relevance. Or you'll setup you tabs so, that they are all initially opened.
HTML are quite better - fully crawlable and content is displayed to 100%.
But you can play the game and use this effect: if you have a kind of duplicated content on page, you know, like product variants or something the like - what you do want to place for your users, but don't want, that Google pays much attention to it), place it into closed tab and this content will be automatically downgraded in its relevance. On this way you enhance you user metrics (time on site or the like) and don't send negative content quality signal with your dc.