Add this custom JavaScript verification to the question:
var rows = $('input[name="hid_row_list_[% QuestionName() %]"]').val().split(',');
var columns = $('input[name="hid_col_list_[% QuestionName() %]"]').val().split(',');
var count = 0;
rows.forEach(function(row){
columns.forEach(function(column){
if (SSI_GetValue('[% QuestionName() %]_r' + row + '_c' + column)) {
count++;
}
});
});
if (count != 1) {
strErrorMessage = 'Check exactly one box.';
}
Add this elsewhere to the question:
<style>
#[% QuestionName() %]_div .graphical_select.checkbox {
background: url(example.com/image1.png) no-repeat center center;
}
#[% QuestionName() %]_div .graphical_select.checkboxselected {
background: url(example.com/image2.png) no-repeat center center;
}
#[% QuestionName() %]_div .checkbox_svg {
display: none;
}
</style>
Replace those URLs with the URLs of your images.