colortbl.sty invokes color.sty, if the last package is not loaded. The same is true for array.sty.
<..colortbl.4ht..>
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      
 % colortbl.4ht                          2014-07-12-22:36 %
      
 % Copyright (C) 1997--2009       Eitan M. Gurari         %
      
 <.TeX4ht copyright.>
      
 
      
    <.fix colortbl.>
      
    <.colortbl.sty shared config.>
      
 \Hinput{colortbl}
      
 \endinput
      
 -_-_-
           
<..fix colortbl..>
 \CT@everycr{\o:noalign:{\global\let\CT@row@color\relax}\the\everycr}
      
 -_-_-
           
<..fix colortbl..>+
 \def\columncolor#1{{\def\current@color{#1}%
      
                     \csname a:cell-colortbl\endcsname}}
      
 \Odef\columncolor[#1]#2{{\if :#1:\def\current@color{#2}%
      
                          \else
      
                             \Configure{tblcol:#1}{#2}%
      
                          \fi
      
                     \csname a:cell-colortbl\endcsname}%
      
    \futurelet\:temp\left:colcol}
      
 \def\left:colcol{%
      
    \ifx [\:temp \expandafter\left::colcol \fi
      
 }
      
 \def\left::colcol[#1]{
      
    \futurelet\:temp\right:colcol
      
 }
      
 \def\right:colcol{%
      
    \ifx [\:temp \expandafter\right::colcol \fi
      
 }
      
 \def\right::colcol[#1]{}
      
 \HAssign\tblcol:N = 0
      
 \NewConfigure{tblcol:gray}[1]{%
      
    \gHAdvance\tblcol:N by 1
      
    \def\:temp##1 ##2//{%
      
        \int:of\:tempa{255}{##1}%
      
        \Configure{HColor}{tblcol-\tblcol:N}{rgb(\:tempa,\:tempa,\:tempa)}%
      
    }\:temp #1 //%
      
    \def\current@color{tblcol-\tblcol:N}%
      
 }
      
 \NewConfigure{tblcol:rgb}[1]{%
      
    \gHAdvance\tblcol:N by 1
      
    \def\:temp##1 ##2 ##3 ##4//{%
      
        \int:of\:tempa{255}{##1}%
      
        \int:of\:tempb{255}{##2}%
      
        \int:of\:tempc{255}{##3}%
      
        \Configure{HColor}{tblcol-\tblcol:N}{rgb(\:tempa,\:tempb,\:tempc)}%
      
    }\:temp #1 //%
      
    \def\current@color{tblcol-\tblcol:N}%
      
 }
      
 \NewConfigure{tblcol:cmyk}[1]{%
      
    \gHAdvance\tblcol:N by 1
      
    \def\:temp##1 ##2 ##3 ##4 ##5//{%
      
       \int:of\:Cyan{255}{##1}%
      
       \int:of\:Magenta{255}{##2}%
      
       \int:of\:Yellow{255}{##3}%
      
       \int:of\:Black{255}{##4}%
      
       \:cmyk\:tempa\:Cyan
      
       \:cmyk\:tempb\:Magenta
      
       \:cmyk\:tempc\:Yellow
      
        \Configure{HColor}{tblcol-\tblcol:N}{rgb(\:tempa,\:tempb,\:tempc)}%
      
    }\:temp #1 //%
      
    \def\current@color{tblcol-\tblcol:N}%
      
 }
      
 -_-_-
The followning is a redefinition of a macro from array.sty
<..fix colortbl..>+
 \NewConfigure{@classz}{4}
      
 \pend:def\@classz{\pic:gobble\a:@classz}
      
 \append:def\@classz{\pic:gobble\b:@classz}
      
 \pend:def\insert@column{\pic:gobble\c:@classz}
      
 \append:def\insert@column{\pic:gobble\d:@classz}
      
 -_-_-
‘\insert@column’ is used only in array.
Used to have ‘\let\HRow|=\relax\let\HCol|=\relax’ in ‘\pend:def\@classz’, but that caused a problem in \multicol. Do we still need that protection in \@classz?
We take ‘\Configure{@classz} {before col}{after col} {before entry}{efter entry}’, where the last two need protection if their content is to expand when the item is reached. Otherwise, everything expands when the Preamble is visited.
The following is a reduced definition which removes the ruler used in painting the backrounds.
<..fix colortbl..>+
 \def\:temp{\global\let\CT@do@color=\relax}
      
 \HLet\CT@@do@color=\:temp
      
 -_-_-
The configuration:
<..fix colortbl..>+
 \let\::maketitle=\o:maketitle:
      
 \def\o:maketitle:{%
      
    \ifx \EndPicture\:UnDef
      
       \NewConfigure{@classz}{4}%
      
       \Configure{@classz}{}{}{}{}%
      
    \fi
      
    \::maketitle }
      
 -_-_-
Don’t \CT@setup, \CT@row@color, and \CT@do@color need also a treatment similar to \CT@column@color?