<table> for semantic/accessibility reasons because elements on the "same row" are unrelated. Ideally, I guess I'd want multiple <ul>; however, I wouldn't know how to enforce the 4th constraint listed above.grid-auto-flow: column; and ensure each "list" starts at the beginning of a row (grid-row: 1; for the corresponding elements); however, no ul in markup and no control over separator being displayed at the bottom of empty cells.