First off, I agree 100% with Jannis (@instacks)
I don’t have UIKit, but have Source, so out of the 4 Frameworks I have (Foundation 6, Foundry 2, Source, and Platform), Foundation 6 generates the cleanest code. Joe (@joeworkman) did an excellent job. The Stacks plugin by default generates two additional <div>
wrappers for most stacks. If you look at the code, you will see them on all most every stack.
This is an example of the code generated by the standard stacks Headline (and most other frameworks would have similar) produces to display a single headline
An Important Headline
<div id="stacks_out_2" class="stacks_out">
<div id="stacks_in_2" class="stacks_in com_yourhead_stack_header_stack">
<h3>An Important Headline</h3>
</div>
</div>
This is the code generated by Foundation 6 to produce the same headline:
<h3 class=" “>An Important Headline</h3>
This even gets worse when you place stacks inside of stacks inside of stacks. A common practice.
Example 2 Headings like above inside a 2 column stack inside of a container stack (or 1 column stack).
With the standard stacks:
<div id="stacks_out_4" class="stacks_out">
<div id="stacks_in_4" class="stacks_in stack_stack">
<div id="stacks_out_6" class="stacks_out">
<div id="stacks_in_6" class="stacks_in com_yourhead_stacks_two_columns_stack">
<div class="s3_row">
<div class="s3_column s3_column_left">
<div id="stacks_out_2" class="stacks_out">
<div id="stacks_in_2" class="stacks_in com_yourhead_stack_header_stack">
<h3>An Important Headline</h3>
</div>
</div>
</div>
<div class="s3_column s3_column_right">
<div id="stacks_out_9" class="stacks_out">
<div id="stacks_in_9" class="stacks_in com_yourhead_stack_header_stack">
<h3>An Important Headline</h3>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
And the same code generated using Foundation 6:
<div class="container overflow-hidden “>
<div class=”grid-container">
<div class="grid-x “>
<div class=”cell small-12 medium-auto “>
<h3 class=” “>An Important Headline</h3>
</div>
<div class=”cell small-12 medium-auto “>
<h3 class=” “>An Important Headline</h3>
</div>
</div>
</div>
</div>
All those extra divisions have to need interpreted and applied by search engines, screen readers and even the browser.
And they both produce the same results:
No matter what tool you use the HTML 5 Semantics are still up to you to apply. Foundation 6 and the other frameworks give you the tools to apply them but it’s really up to you to ensure that the get applied.
For example Foundation 6 offers a Container stack that allows you to change HTML tag from the default <div>
to a more relevant Semantics tag type (i.e. header, nav, main, aside, footer, etc. etc.). But it’s up to you the user to set up these containers. There is no way with a free format framework that the developer can do this part for you.
So it’s important for you to understand where we should use these Semantics tags.
Pretty much every page should have a header, nav, main, and footer area at minimum. An aside (sidebar) and breaking the content into articles can help as well.
You can find more information on Semantics tag along with definitions here HTML Semantic Elements (w3schools.com).