$ x = y = 1$ gives $ a\leq f(1) - f(1)^{2} = {1\over 4} - (f(1) - {1\over 2})^{2}\leq{1\over 4}$.
For $ a < {1\over 4}$ we can take $ f: (0,1]\to[{1\over 2},\min\{{3\over 4} - a,1\}]$ arbitrary.
Then
$ a + f(x + y - xy) + f(x)f(y) - ( f(x) + f(y)) \\
\hspace*{0.5in} = a + f(x + y - xy) + (1 - f(x))(1 - f(y)) - 1\leq a + ({3\over 4} - a) + {1\over 2}\cdot{1\over 2} - 1 = 0$
for all $ x,y\in (0,1]$.
For $ a = {1\over 4}$ we get $ (f(1) - {1\over 2})^{2}\leq 0$ and $ f(1) = {1\over 2}$.
Then $ y = 1$ gives $ f(x)\geq{1\over 2}$ for all $ x\in(0,1]$.
$ x = y$ gives $ f(2x - x^{2})\leq 2f(x) - f(x)^{2} - {1\over 4} = {3\over 4} - (1 - f(x))^{2}\leq{3\over 4}$ for all $ x\in(0,1]$.
But $ 2x - x^{2} = 1 - (1 - x)^{2}$ runs through all of $ (0,1]$ for $ x\in(0,1]$.
So $ t = \sup\{f(x): x\in(0,1]\}\in [{1\over 2},{3\over 4}]$ exists.
But then $ t = \sup_{x\in(0,1]}f(2x - x^{2}) \leq \sup_{x\in(0,1]}({3\over 4} - (1 - f(x))^{2}) = {3\over 4} - (1 - t)^{2}$
and $ t = {1\over 2}$.
So $ f\equiv{1\over 2}$ constant. Contradiction!