_SparseSparseMaximumGrad throws TypeError in forward gradient computation
Hi @trickiwoo ,

Thanks for reporting. I have replicated the issue with Tf2.12 and tf-nightly as well and attached [gist](https://colab.research.google.com/gist/SuryanarayanaY/994d408ba5d5e3728644b2224a28a6c4/61132.ipynb) for reference.

Needs to dig more to check the reason for this behaviour. Thanks!
### Issue type

Bug

### Have you reproduced the bug with TensorFlow Nightly?

Yes

### Source

source

### TensorFlow version

2.14.0-dev20230630

### Custom code

Yes

### OS platform and distribution

Linux Ubuntu 20.04

### Mobile device

_No response_

### Python version

_No response_

### Bazel version

_No response_

### GCC/compiler version

_No response_

### CUDA/cuDNN version

_No response_

### GPU model and memory

_No response_

### Current behavior?

When the function has a `tf.sparse.maximum` call, the forward-mode gradient computation fails with `TypeError: _SparseSparseMaximumGrad() takes 2 positional arguments but 3 were given`.

After inspection, i find that SparseTensor is not supported for differentiation. In the example code below, computing reverse-mode gradient of `y` (sparse tensor) will result in a `TypeError: Type SparseTensor is not supported as a gradient source or gradient target.`

However, in the forward mode gradient computation, I am trying to compute gradient for a non-sparse tensor `complex_data`, and I think it should not be affected by the  `tf.sparse.maximum` call?

### Standalone code to reproduce the issue

```shell
import tensorflow as tf

real_data = tf.random.uniform([4, 4], dtype=tf.float32)
imag_data = tf.random.uniform([4, 4], dtype=tf.float32)

def foo(real_data, imag_data):
    complex_data = tf.complex(real_data, imag_data)
    y = tf.sparse.maximum(tf.sparse.from_dense(real_data), tf.sparse.from_dense(imag_data))
    return complex_data, y

with tf.GradientTape(persistent=True) as t:
    t.watch(real_data)
    t.watch(imag_data)
    complex_data, y = foo(real_data, imag_data)

g = t.gradient(complex_data, real_data) # works
# g = t.gradient(y, real_data) # ValueError: Type SparseTensor is not supported as a gradient source or gradient target.


tangents = tf.ones((4,4))
with tf.autodiff.ForwardAccumulator(real_data,tangents) as acc:
    complex_data, y = foo(real_data, imag_data)
    # TypeError

# Never reach here
# jvp = acc.jvp(complex_data)
# print(jvp)
```


### Relevant log output

```shell
TypeError: _SparseSparseMaximumGrad() takes 2 positional arguments but 3 were given
```
