# HTML style guide ## Buttons ### Button type Button tags requires a `type` attribute according to the [W3C HTML specification](https://www.w3.org/TR/2011/WD-html5-20110525/the-button-element.html#dom-button-type). ```html // bad // good ``` ### Button role If an HTML element has an `onClick` handler but is not a button, it should have `role="button"`. This is [more accessible](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_button_role). ```html // bad
// good
``` ## Links ### Blank target Use `rel="noopener noreferrer"` whenever your links open in a new window, i.e. `target="_blank"`. This prevents a security vulnerability [documented by JitBit](https://www.jitbit.com/alexblog/256-targetblank---the-most-underestimated-vulnerability-ever/). ```html // bad // good ``` ### Fake links **Do not use fake links.** Use a button tag if a link only invokes JavaScript click event handlers, which is more semantic. ```html // bad // good ```