It is possible to use tried and true radio buttons and checkboxes, but customize the appearance. The approach is based on the CSS-only solution that Ryan Seddon worked out here. But, this example uses JavaScript for changing the images, instead of using CSS selectors. Either way follows the accessibility guidelines: test page