New Board of Elections Site

The rea­son I’ve been putting in so many late hours since the first of the year is now live to the world. The new Cuya­hoga County Board of Elec­tions site is now live. Our whole group has done pretty much noth­ing but recode the site from the ground up since Jan­u­ary 1st. I put together a site tour to show off all of the new bells and whis­tles, but I’ll touch on my favorites here.

My Vot­ing Information

The My Vot­ing Infor­ma­tion page is a great one-​stop-​shop for per­son­al­ized vot­ing infor­ma­tion, all of which is pub­lic record. If you enter your last name and date of birth you get detailed results con­cern­ing your polling loca­tion, bal­lot, dis­trict infor­ma­tion, past elec­tion par­tic­i­pa­tion [not your votes, just the elec­tions you’ve voted in], poll worker par­tic­i­pa­tion and com­mu­nity out­reach events in your city. There’s even a Google map which will give you direc­tions from your home to your polling location.

Elec­tion Results Wizard

The Elec­tion Results Wiz­ard lets you fol­low only the races you’re inter­ested in instead of hav­ing to scroll through the huge mas­ter results list.

Events Cal­en­dar

The Events Cal­en­dar lets you search for the events that you’re inter­ested in, and only the events you’re inter­ested in.

Val­i­da­tion, Accessibility

Work­ing within the design con­straints [not a big fan of hav­ing to use #EF3E42] and the con­straints of the ASP​.NET CMS was great for the most part. I’m still hav­ing fits try­ing to get the server to stop spit­ting out so much trash code, but I’ve learned a lot about styling within .NET itself. Despite that, I’m at a loss of what to do with the remain­ing val­i­da­tion errors since even the three images miss­ing alt attrib­utes are inac­ces­si­ble because they aren’t hard-​coded. I man­aged to give them title attrib­utes, but can’t fig­ure out the alt text trick. I’m try­ing to con­vince the devel­op­ers to take the Google Map API key out of the web.config and put it back into the script where it typ­i­cally is because ASP​.NET doesn’t allow code blocks within the header. This means there are script ref­er­ences out­side of the header. And, ASP​.NET labels spit out every­thing between tags which the val­ida­tor also chokes on because block-​level ele­ments can’t be con­tained within inline ele­ments.Update: I’ve whit­tled down the val­i­da­tion errors to one, the onClick attribute that’s called as a user con­trol for the site search. That’s def­i­nitely one for a devel­oper to look at. The alt attrib­utes were inserted by using a text=”” attribute in the asp:hyperlink line. I’m used to a text attribute actu­ally spit­ting out text, so that wasn’t an intu­itive choice for me. The Google API isn’t called until some­one actu­ally clicks on a direc­tions link, so there are now no scripts out­side of the header, and all those span tags can be got­ten rid of by using ASP:Literal ele­ments instead of ASP:Label ones. That sim­ple switch cleaned up about 80% of the trash code that I was see­ing upon view­ing source. I’m learn­ing even more. Maybe I’ll even learn some pro­gram­ming here in a bit.

There might be a bet­ter way to go about this, but I’ve not had the chance to take an ASP​.NET course yet, and it is new hat to the devel­op­ers as well. Those guys are frig­gin’ heroes though, no doubt.

In acces­si­bil­ity­land, unfor­tu­nately the site is heav­ily depen­dent on JavaScripts. There isn’t really any­thing I can do about that as a designer, and most of the inter­ac­tive items depend on it. I made sure to pro­vide access keys and tab index­ing where it would be help­ful and we’re now pro­vid­ing an acces­si­bil­ity state­ment, at least. There is always more to be done, but the hon­est truth is that acces­si­bil­ity becomes a low pri­or­ity when the lim­its of time, money and inter­est are more con­cerned with other things. On the bright side, the new site is worlds bet­ter than the old one for those who use alter­na­tive brows­ing methods.

The End

In the end I hope that [as cheesy as it sounds] my work on the BOE site will help improve the elec­toral process and expe­ri­ence for folks in Cuya­hoga County. Although I say so myself, the Cuya­hoga County Board of Elec­tions site is the best board of elec­tions site I’ve seen. I hope it influ­ences oth­ers to step up their game as much as the Web Group at the ISC has these past two months.

Time for a beer.

Comments on this post

  1. Very nice.

    Thanks for your hard work, Adam.

    It was really easy to find my vot­ing info, and a bit wor­ri­some to find I’m listed as Party: “X”.

    Is that a check­mark or an undefined?

  2. I’m an X too. That’s the value that the DB returns for folks who’ve never declared a party affiliation.

  3. Hmm.

    From the FAQ : “a person’s polit­i­cal party affil­i­a­tion is deter­mined by choos­ing to vote a party bal­lot at a par­ti­san Pri­mary Election.”

    So, I can vote in a party’s Pri­mary on Tues­day with­out hav­ing pre­vi­ously reg­is­tered for that party…?

  4. that’s not cheesy, it’s awesome.

  5. Yup,

    You can declare a party affil­i­a­tion at the polls, and you can switch affil­i­a­tion at the polls at every pri­mary if you so choose. At least, that’s how I under­stand it. Or you can just vote on the issues if you don’t want to declare a party. That’s what I’m going to do.

  6. Looks great, but I about plotzed when the site wouldn’t acknowl­edge me and called me “unregistered” — I called and in less than 5 was told that I was, indeed reg­is­tered.… *whew!* 

  7. Yeah, the voter data­base isn’t up-​to-​the-​minute.

  8. looks great adam, can’t wait vote!