I think having a single attribute makes more sense than a series of attributes with checkboxes. Taking health as an example, it's handy for other reasons to have a numerical value to represent the health. You can incorporate the player token bar overlay, for example. The way I did this is with a series of buttons for each checkbox and a series CSS classes for the display of those checkboxes. (In my sheet, these are "dots" rather than "checkboxes", but the goal is the same.) <div class="dots spread">
<input type="hidden" name="attr_power" value="1" />
<button type="action" class="dot" name="act_power_1"></button>
<button type="action" class="dot ne-1" name="act_power_2"></button>
<button type="action" class="dot ne-1 ne-2" name="act_power_3"></button>
<button type="action" class="dot ne-1 ne-2 ne-3" name="act_power_4"></button>
<button type="action" class="dot ne-1 ne-2 ne-3 ne-4" name="act_power_5"></button>
</div> for (let value = 1; value <= 5; value++) { on(`clicked:power_${value}`, (eventInfo) => { setAttrs({ "power": value }); }); } input[type="hidden"][value="1"] ~ button.sheet-dot:not(.sheet-ne-1),
input[type="hidden"][value="2"] ~ button.sheet-dot:not(.sheet-ne-2),
input[type="hidden"][value="3"] ~ button.sheet-dot:not(.sheet-ne-3),
input[type="hidden"][value="4"] ~ button.sheet-dot:not(.sheet-ne-4),
input[type="hidden"][value="5"] ~ button.sheet-dot:not(.sheet-ne-5) {
/* Apply "active" styling" */
background: #404040;
background: -moz-radial-gradient(#404040, #404040);
background: -webkit-radial-gradient(#404040, #404040);
background: -ms-radial-gradient(#404040, #404040);
background: -o-radial-gradient(#404040, #404040);
background: radial-gradient(#404040, #404040);
} This displays a filled circle whenever the value does not match one of the ne-* classes on that button. (This uses background to distinguish an active dot, but you can have a child `<span class="checked">` on each button that holds the content / styling to be displayed when the button is active.) A similar example can be found here: <a href="https://wiki.roll20.net/CSS_Wizardry#Fill_Radio_Buttons_to_the_Left" rel="nofollow">https://wiki.roll20.net/CSS_Wizardry#Fill_Radio_Buttons_to_the_Left</a>